DBCC FREESYSTEMCACHE (Transact-SQL)
Удаляет все неиспользуемые элементы из всех кэшей. Компонент Компонент SQL Server Database Engine заранее автоматически очищает неиспользуемые элементы кэша в фоновом режиме, освобождая память для текущих записей. Однако можно использовать эту команду, чтобы вручную удалить неиспользуемые записи из всех кэшей или из указанного кэша пула регулятора ресурсов.
Синтаксические обозначения в Transact-SQL
Синтаксис
DBCC FREESYSTEMCACHE
( 'ALL' [, pool_name ] )
[WITH
{ [ MARK_IN_USE_FOR_REMOVAL ] , [ NO_INFOMSGS ] }
]
Аргументы
( 'ALL' [,pool_name ] )
Ключевое слово ALL указывает все поддерживаемые кэши.Аргумент pool_name указывает кэш пула регулятора ресурсов. Освобождены будут только записи, связанные с этим пулом.
MARK_IN_USE_FOR_REMOVAL
Асинхронно освобождает текущие используемые элементы из соответствующих кэшей после того, как они перестают использоваться. Не влияет на новые элементы, созданные в кэше после выполнения DBCC FREESYSTEMCACHE WITH MARK_IN_USE_FOR_REMOVAL.NO_INFOMSGS
Подавляет вывод всех информационных сообщений.
Результирующие наборы
Инструкция DBCC FREESYSTEMCACHE возвращает:
«Выполнение инструкции DBCC завершено. Если инструкция DBCC выдает сообщения об ошибках, обратитесь к системному администратору.»
Замечания
При выполнении инструкции DBCC FREESYSTEMCACHE очищается кэш планов для экземпляра SQL Server. Очистка кэша планов становится причиной перекомпиляции всех последующих планов выполнения и приводит к непредвиденному временному снижению производительности обработки запросов. В SQL Server для каждого очищенного хранилища кэша в кэше планов журнал ошибок содержит следующее информационное сообщение: «SQL Server обнаружил %d экземпляров, записанных на диск хранилищ кэша для хранилища кэша %s (части кэша планов) в результате операций DBCC FREEPROCCACHE или DBCC FREESYSTEMCACHE». Это сообщение добавляется в журнал каждые пять минут при сбросе кэша в течение этого интервала времени.
Разрешения
Требует разрешения ALTER SERVER STATE на сервере.
Примеры
А.Освобождение неиспользуемых записей кэша из кэша пула регулятора ресурсов
В следующем примере показывается, как очищать кэши, выделенные указанному пулу ресурсов регулятора ресурсов.
-- Clean all the caches with entries specific to the resource pool named "default".
DBCC FREESYSTEMCACHE ('ALL', default);
Б.Освобождение записей из кэшей после прекращения их использования
В следующем примере используется предложение MARK_IN_USE_FOR_REMOVAL, чтобы освободить записи из всех текущих кэшей, когда записи становятся неиспользуемыми.
DBCC FREESYSTEMCACHE ('ALL') WITH MARK_IN_USE_FOR_REMOVAL;
См. также
Справочник
DBCC FREEPROCCACHE (Transact-SQL)
DBCC FREESESSIONCACHE (Transact-SQL)