Хранимые процедуры. Назначение

Хранимая процедура - это последовательность компилированных операторов Тгаnsасt - SQL, хранящихся в системной базе данных SQL Server. Хранимые процедуры предварительно откомпилированы, поэтому эффективность их выполнения выше, чем у обычных запросов. Хранимые процедуры работают непосредственно на сервере и хорошо укладываются в модель клиент- сервер.

Существует два вида хранимых процедур: системные и пользовательские.

Системные хранимые процедуры предназначены для получения информации из системных таблиц и выполнения различных служебных операций и осо­бенно полезны при администрировании базы данных. Их имена начинаются с sp_ (stored procedure).

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

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

  • Процедура разбивается на отдельные компоненты лексическим анализатором выражений.
  • Компоненты, ссылающиеся на объекты базы данных (таблицы, индексы представления и т. п.), сопоставляются с этими объектами с предвари тельной проверкой их существования. Этот процесс носит название разрешение ссылок.
  • В системной таблице syscomments сохраняется исходный текст процедуры, а в таблице sysobjects - ее название.
  • Создается предварительный план выполнения запроса. Этот предварительный план называется нормализованным планом или деревом запроса и хранится в системной таблице sysprocedures.
  • При первом выполнении хранимой процедуры дерево запроса считывается и окончательно оптимизируется. Выполняется ранее созданный План процедуры.

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

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

Использование хранимых процедур имеют еще ряд дополнительных Пре­имуществ.

  • Хранимые процедуры позволяют выделять правила в отдельную структуру. В дальнейшем эти правила используются многими приложениями, образуя устойчивый к ошибкам интерфейс данных. Выгода такого подхо­да состоит в том, что можно осуществлять изменение правил только для отдельной части объектов базы данных, а не для всех ее приложений.
  • Использование хранимых процедур значительно повышает производи­тельность запросов, однако наибольшей ее прирост достигается при вы­полнении многократно повторяющихся операций, когда план запроса постоянно хранится в системном кэше.
  • Хранимые процедуры могут принимать аргументы при запуске и возвра­щать значения (в виде результирующих наборов данных).
  • Хранимые процедуры могут запускаться по расписанию (в режиме авто­матического выполнения), задаваемому при запуске SQL Server.
  • Хранимые процедуры используются для извлечения или изменения дан­ных в любое время.
  • Хранимые процедуры, в отличие от триггеров, вызываются явно. То есть при непосредственном обращении к процедуре из приложения, сцена­рия, пакета или задачи.

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

 








Дата добавления: 2015-11-06; просмотров: 936;


Поиск по сайту:

При помощи поиска вы сможете найти нужную вам информацию.

Поделитесь с друзьями:

Если вам перенёс пользу информационный материал, или помог в учебе – поделитесь этим сайтом с друзьями и знакомыми.
helpiks.org - Хелпикс.Орг - 2014-2024 год. Материал сайта представляется для ознакомительного и учебного использования. | Поддержка
Генерация страницы за: 0.003 сек.