MS SQL Shrink/сжатие разросшейся базы TempDB

Иногда база TempDB может разрастись (например после выполнения долгих транзакций над большим количеством данных), если место в TempDB уже освободилось, то для освобождения места на диске можно выполнить ее сжатие (shrink). Сделать это можно либо запросом либо в SSMS студии (сжимать нужно файл данных tempdev — tempdb.mdf).

Если операция shrink не привела к уменьшению файла БД, значит необходимо произвести сброс буферов и кешей сервера и повторить shrink :

Создаем checkpoint и сбрасываем буферы страниц и индексов на диск:

CHECKPOINT;
GO
DBCC DROPCLEANBUFFERS;
GO

Чистим кеш хранимых процедур:

DBCC FREEPROCCACHE;
GO

Очищаем остальные типы кешей:

DBCC FREESYSTEMCACHE ('ALL');
GO

Чистим кеш сессий:

DBCC FREESESSIONCACHE;
GO

После этого можно повторно запустить сжатие файла — место на диске должно освободиться (способ чаще всего срабатывает и без первого пункта — без создания checkpoint и сброса буфера страниц).

Более подробно тут: https://sqlsunday.com/2013/08/11/shrinking-tempdb-without-restarting-sql-server/

0

Добавить комментарий

Ваш e-mail не будет опубликован.