FirebirdSQL logo

Преимущества хранимых процедур

Хранимые процедуры имеют следующие преимущества:

Модульность

Приложения, работающие с одной и той же базой данных, могут использовать одну и ту же хранимую процедуру, тем самым уменьшив размер кода приложения и устранив дублирование кода.

Упрощение поддержки приложений

При изменении хранимой процедуры, изменения отражаются сразу во всех приложениях, без необходимости их перекомпиляции.

Увеличение производительности

Поскольку хранимые процедуры выполняются на стороне сервера, а не клиента, то это уменьшает сетевой трафик, что повышает производительность.

Типы хранимых процедур

Существуют два вида хранимых процедур — выполняемые хранимые процедуры (executable stored procedures) и селективные процедуры (selectable stored procedures).

Выполняемые хранимые процедуры

Выполняемые хранимые процедуры, осуществляют обработку данных, находящихся в базе данных.Эти процедуры могут получать входные параметры и возвращать одиночный набор выходных (RETURNS) параметров.Такие процедуры выполняются с помощью оператора EXECUTE PROCEDURE.См. пример создания выполняемой хранимой процедуры в конце разделаCREATE PROCEDURE главы “Операторы DDL”.

Селективные хранимые процедуры

Селективные хранимые процедуры обычно осуществляют выборку данных из базы данных и возвращают при этом произвольное количество строк.

Такие процедуры позволяют получать довольно сложные наборы данных, которые зачастую невозможно или весьма затруднительно получить с помощью обычных DSQL SELECT запросов.Обычно такие процедуры выполняют циклический процесс извлечения данных, возможно преобразуя их, прежде чем заполнить выходные переменные (параметры) новыми данными на каждой итерации цикла.Оператор SUSPEND, обычно расположенный в конце каждой итерации, заполняет буфер и ожидает пока вызывающая сторона не выберет (fetch) строку.

Селективные процедуры могут иметь входные параметры и выходное множество, заданное в предложении RETURNS заголовка процедуры.

Обращение к селективной хранимой процедуре осуществляется при помощи оператора SELECT(см. Выборка из селективной хранимой процедуры).См. пример создания селективной хранимой процедурыв конце раздела CREATE PROCEDURE главы “Операторы определения данных DDL”.