Очистка процедурного КЭШа (DBCC FREEPROCCACHE).
Posted On 2020-09-18
Частота очистки процедурного КЭШа (буфер плана запроса) должна совпадать с частотой обновления статистики. Так как MS SQL кэширует планы запроса для их повторного выполнения, это делается для экономии времени. И вполне возможна такая ситуация, когда после обновление статистики в КЭШе останется устаревшая информация о плане запроса, что приведет, к неоптимальном его выполнении.
Иногда возникает необходимость очистить кэш для определенной БД. Когда полностью очиненный кэш сделанный по необходимости для одной БД, может повлиять на производительность остальных работающий в одном экземпляре SQL. Есть недокументированная команда по очистки КЭШа БД. Насколько она безопасна, решать каждому ее использовавшему:
1. select name, database_id from sys.databases
// получаем идентификатор нужной БД.
2. DBCC FLUSHPROCINDB(<database_id>)
// очищаем кэш по id БД.