+7 (347) 266-55-14 г. Уфа, ул. Проспект Октября, 90 10:00 - 19:30 (пн-пт), 12:00 – 17:00 (сб-вс)
Х

Уважаемые клиенты!

Скидка 15% в честь открытия филиала!

Открылся филиал сервисного центра КомпЛайн в микрорайоне Южный по адресу ул. Софьи Перовской д.54.

Рады встретить Вас в нашем новом офисе.

Приходите!

Очистка процедурного кэша для отдельной базы в SQL Server

ГлавнаяСтатьиБазы данных, sql, 1с sqlОчистка процедурного кэша SQL Server
Очистка процедурного кэша SQL Server
Для очистки процедурного кэша sql есть стандартная команда DBCC FREEPROCCACHE которая очищает процедурный кэш но без возможности какой либо "фильтрации" конкретно по базе данных.

Имеется два способа решения данной задачи задачи:
Простой и документированный.
 
Документированный способ - выполние процедуры sp_recompile для каждой таблицы в базе данных.
Что приведет к рекомпиляции запросов, при последующих выполнениях, находящихся в кеше и ссылающихся на таблицы базы.
Недостаток такого способа в том, что эти запросы так и останутся в кэше и не очистятся из памяти.
Таким образом данный способ решает вопрос вызова компиляции запросов, не более.

Простой способ -  DBCC FLUSHPROCINDB(dbid) недокументированная команда MS SQL.

dbid - идентификатор базы данных, возвращаемый функцией db_id(), так как саму функцию в команде "dbcc" использовать не удасться.
Данная команда полноценно очистит процедурный кэш от любых имеющихся запросов, которые отностяся к конкретной явно указанной базе данных.

Данные способы очистки кеша проверены на SQL Server 2005 и SQL Server 2008 R2.


Ваши вопросы и комментарии

ОтменитьОставьте ваш вопрос