Поделиться через


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

SQL Server 2005 хранит только исходный код хранимых процедур и триггеров. При выполнении хранимой процедуры или триггера в первый раз исходный код компилируется в план выполнения. Если очередной вызов хранимой процедуры или триггера будет инициирован до устаревания плана выполнения, ядро СУБД обнаружит существующий план и использует его повторно. Если план устарел и был удален из памяти, будет создан новый план. Этот процесс похож на то, как SQL Server 2005 обрабатывает все инструкции SQL. Основное преимущество хранимых процедур и триггеров SQL Server 2005 над пакетами динамического кода SQL в плане быстродействия заключается в том, что их инструкции SQL всегда остаются постоянными. Благодаря этому ядро СУБД может с легкостью сопоставлять их с любыми существующими планами выполнения. Это облегчает повторное использование планов хранимых процедур и триггеров.

В версиях SQL Server, предшествовавших версии 7.0, превосходство хранимых процедур над другими инструкциями SQL в плане производительности было более выраженным. Эти версии SQL Server не пытались повторно использовать планы выполнения пакетов, которые не были хранимыми процедурами или триггерами. Единственный способ повторного использования планов выполнения сводился к кодированию инструкций SQL в хранимых процедурах.

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

См. также

Основные понятия

Архитектура обработчика запросов

Справка и поддержка

Получение помощи по SQL Server 2005