Что лучше всего использовать при сжатии Временных БД в SQL Server 2008?
Это рискованно использовать следующее?
use tempdb
GO
DBCC FREEPROCCACHE -- clean cache
DBCC DROPCLEANBUFFERS -- clean buffers
DBCC FREESYSTEMCACHE ('ALL') -- clean system cache
DBCC FREESESSIONCACHE -- clean session cache
DBCC SHRINKDATABASE(tempdb, 10); -- shrink tempdb
dbcc shrinkfile ('tempdev') -- shrink db file
dbcc shrinkfile ('templog') -- shrink log file
GO
-- report the new file sizes
SELECT name, size
FROM sys.master_files
WHERE database_id = DB_ID(N'tempdb');
GO
sql-server
shrink
tempdb
Mcol
источник
источник
Ответы:
Рекомендуется активно отслеживать обычное использование Tempdb и соответственно устанавливать размер. Если это единственный случай, когда Tempdb вырос до такого размера и его среда PROD, я бы перезапустил службы SQL Server во время еженедельного обслуживания. Там после Tempdb вернется к своему настроенному размеру.
Сжатие файла хорошо, пока Tempdb не используется, иначе на существующие транзакции может повлиять с точки зрения производительности из-за блокировок и взаимоблокировок.
Очистка кеша процедур, буферных кешей и т. Д. Будет негативно влиять на производительность самой базы данных, пока они не будут воссозданы. Я бы не стал делать это на PROD.
Надеюсь, это поможет!
источник