103
16. ХРАНИМЫЕ ПРОЦЕДУРЫ – ИНСТРУМЕНТ ПОВЫШЕНИЯ
ЭФФЕКТИВНОСТИ ПРИЛОЖЕНИЯ БД
Хранимая процедура - отдельная программа, написанная на SQL для процедур
и триггеров InterBase. Сами процедуры хранятся в базе данных. Хранимые
процедуры позволяют вести поиск и обработку данных непосредственно на сервере,
обеспечивая максимальную независимость клиентской части приложений. В них
могут использоваться любые конструкции SQL для процедур и триггеров, кроме
контекстных переменных NEW.co/wmn, OLD.column, применимых только в
триггерах. Они, как обычные программы, могут получать входные параметры и
возвращать значения вызвавшим их приложениям. Кроме того, могут возвращать не
только отдельный набор значений - строку, но и множество строк, которое можно
рассматривать как виртуальную таблицу.
Хранимая процедура может также вызываться непосредственно из
приложения или других хранимых процедур или триггеров. Хранимые процедуры,
возвращающие множество строк, можно использовать в команде SELECT на месте
таблиц или обзоров. Использование хранимых процедур дает ряд преимуществ:
- Модульность проектирования. Приложения, которые обращаются к одной
базе данных, могут совместно использовать хранимые процедуры, устраняя двойной
код, уменьшая размер приложений и устраняя потенциальные ошибки.
- Локализация изменений. Если процедура модифицируется, то все внесенные
изменения автоматически отражаются во всех приложениях, которые используют
процедуру, обеспечивая их согласованность. При этом нет необходимости в
перетрансляции и перекомпоновке приложений.
- Ускорение обработки. Хранимые процедуры выполняются сервером, а не
клиентом, что позволяет ускорить обработку запросов и сократить сетевой трафик.
Последнее особенно важно для удаленного клиентского доступа.
Процедуры по своему назначению разделяются на два вида: выполнимые
процедуры и процедуры выбора.
Выполнимая процедура - это обычная программа, которая получает несколько
(возможно, и ноль) параметров, выполняет какие-либо действия в базе данных и
возвращает несколько (возможно, и ноль) значений.
Процедура выбора - это программа, которая получает несколько (возможно, и
ноль) параметров, выполняет какие-либо действия в базе данных и возвращает
множество (возможно, пустое) наборов значений.
Другими словами, процедура выбора создает вычисляемую таблицу, хотя
такая таблица никуда и не записывается. Это позволяет обращаться к процедуре, как
к таблице, используя команду SELECT.
Синтаксически можно обращаться к выполнимой процедуре, как к процедуре
выбора, получая при этом в ответ в точности одну строку, а к процедуре выбора, как
к выполнимой, получая при этом в ответ первую строку формируемой таблицы.