Хранимые процедуры или функции

Хранимые процедуры (в некоторых СУБД функции) – это скомпилированный набор SQL-предложений, сохра­ненный в базе данных как именованный объект и выполняющийся как единый фрагмент кода. Хранимые процедуры мо­гут принимать и возвращать параметры. Когда пользователь создает хранимую процедуру, сервер компили­рует ее и помещает в разделяемый кэш, после чего скомпилированный код может быть при­менен несколькими пользователями. Когда приложение использует хранимую процедуру, оно передает ей па­раметры, если таковые ей потребуются, и сервер выполняет процедуру без перекомпиляции. Хранимая процедура позволяет повысить производительность приложений.

Во-первых, по сравнению с обычными SQL-запросами, посылаемыми из клиентского приложения, они требуют меньше времени для подготовки к выполнению, поскольку они скомпилированы и сохранены.

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

Хранимые процедуры автоматически перекомпилируются, если с объектами, на которые они влияют, про­изведены какие-либо изменения; иными словами, они всегда актуальны. Хранимые процедуры обычно исполь­зуются для поддержки ссылочной целостности данных и реализации бизнес-правил. В по­следнем случае достигается дополнительная гибкость, поскольку если бизнес-правила изме­няются, можно изменить только текст хранимой процедуры, не изменяя клиентские приложения.

В данном учебном пособии в качестве примера средства написания хранимых процедур будем рассматривать язык PL/pgSQL, который используется в СУБД PostgreSQL. Язык PL/pgSQL позволяет группировать на сервере код SQL и программные команды, что приводит к снижению затрат сетевых и коммуникационных ресурсов, обусловленных частыми запросами данных со стороны клиентских приложений и выполнением логической обработки этих данных на удаленных хостах.

В программах PL/pgSQL могут использоваться все типы данных, операторы и функции PostgreSQL. SQL в название PL/pgSQL указывает на то, что программист может напрямую использовать команды языка SQL в своих программах. Использование SQL в коде PL/pgSQL расширяет возможности, а также повышает гибкость и быстродействие программ. Несколько команд SQL в программном блоке PL/pgSQL выполняются за одну операцию вместо обычной обработки каждой команды.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: