Есть ли недостатки "С РЕКОМЕНДУЕМОЙ" для ежемесячных процессов, хранимых в SQL Server? - PullRequest
2 голосов
/ 05 декабря 2008

Я думаю, что вопрос говорит сам за себя. У меня есть несколько ежемесячных процессов в хранимых процедурах, которые занимают от минуты до часа. Если я объявлю их WITH RECOMPILE, план выполнения будет генерироваться каждый раз.

Если администратор БД изменяет базовые индексы, статистику или представления, я не хочу, чтобы кто-либо приходил и заставлял перекомпилировать SP с помощью ALTER или чего-то еще.

Есть ли у этого недостаток?

Ответы [ 3 ]

2 голосов
/ 05 декабря 2008

В данных обстоятельствах это было бы совершенно безвредно, и, вероятно, это хорошая идея.

1 голос
/ 05 декабря 2008

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

Даже если вы выполняете одну и ту же хранимую процедуру 100 раз в день отчета, компиляция займет всего 0-2 секунды (в зависимости от сложности хранимой процедуры), так что это не потребует больших затрат. Я чувствую себя комфортно, установив WITH RECOMPILE для этих хранимых процедур.

1 голос
/ 05 декабря 2008

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

Однако сервер пытается кэшировать скомпилированные планы SP. Использование WITH RECOMPILE освободит память, которая использовалась бы для кэширования скомпилированных процедур (по крайней мере, до следующей очистки кэша). Поскольку они проводятся только ежемесячно, это кажется хорошей идеей.

Кроме того, вы можете посмотреть эту статью по другой причине, чтобы использовать эту директиву:
https://web.archive.org/web/1/http://articles.techrepublic%2ecom%2ecom/5100-10878_11-5662581.html

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