Когда хранимая процедура перекомпилируется? (Sql Server) - PullRequest
4 голосов
/ 07 апреля 2010

Я думаю,

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

Пожалуйста, дайте мне другие возможности.

Ответы [ 2 ]

3 голосов
/ 07 апреля 2010

Оптимизация хранимых процедур SQL Server для избежания перекомпиляции

  • удаление и воссоздание хранимой процедуры
  • с использованием предложения WITH RECOMPILE в CREATE PROCEDURE или оператора EXECUTE
  • изменение схемы любых ссылочных объектов
  • запуск системной хранимой процедуры sp_recompile для таблицы, на которую ссылается хранимая процедура
  • восстановление базы данных, содержащей хранимую процедуру или любой объект, на который ссылается хранимая процедура
  • план хранимых процедур сбрасывается из кэша
  • Хранимая процедура будет перекомпилирована, если в таблице имеется достаточное количество строк, на которые ссылается хранимая процедура, изменилось. SQL Server перекомпилирует хранимую процедуру, чтобы убедиться, что в плане выполнения есть актуальная статистика для таблицы.
  • Хранимые процедуры будут перекомпилированы, если у разработчика есть место чередования операций языка определения данных с операциями языка манипулирования данными. Обычно это происходит, когда временные объекты создаются и на них ссылаются по всему коду.
3 голосов
/ 07 апреля 2010

Это все здесь: Кэширование и повторное использование плана выполнения в разделе "Перекомпиляция планов выполнения"

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...