Книга: Настольная книга 1С:Эксперта по технологическим вопросам
Назад: Обновление статистики SQL Server
Дальше: Дефрагментация индексов

Очистка процедурного кеша (кеша планов)

Как говорилось раньше, SQL Server должен будет выполнить работу в соответствии с назначенным планом, не имея возможности до следующего раза его поменять. Однако SQL Server может даже этой возможностью не воспользоваться – он запомнит этот план в процедурный кеш, и возможна ситуация, что если будет вызван точно такой же запрос, будет использован план из кеша, даже если статистика поменялась. Поэтому после обновления статистики этот кеш имеет смысл очищать.

Очистить процедурный кеш можно следующим запросом (в отличие от запроса обновления статистики, поскольку кеш является принадлежностью сервера, а не конкретной базы, базу в Management Studio можно использовать любую):

DBCC FREEPROCCACHE

Чтобы процедурный кеш всегда очищался сразу после обновления статистики, его есть смысл включить в тот же план обслуживания «Обновление статистик и очистка процедурного кеша», который выше был настроен для обновления статистики.

  1. На поле того же вложенного плана надо перетащить задачу Execute T-SQL Statement Task (задача «Выполнение инструкции T-SQL»). Ее надо разметить под предыдущей задачей, и от предыдущей протянуть к ней стрелочку.
  2. Открыть свойства новой задачи двойным щелчком, в поле T-SQL Statement (инструкция T-SQL) ввести текст DBCC FREEPROCCASHE.
  3. Сохранить задачу, нажав ОК.
  4. Сохранить план, например, в меню Файл выбрав Сохранить выбранные элементы.
  5. Убедиться, что задача выполняется.
Назад: Обновление статистики SQL Server
Дальше: Дефрагментация индексов