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