2023年12月21日 星期四

強制壓縮tempdb

 --強制壓縮TempDB

USE [tempdb]

GO

Checkpoint

GO

EXEC sp_spaceused @updateusage = N'TRUE';  

GO 

--每一個 tempfile=([database_size]-[unallocated space])/8, 取8的CEILING值

--ex: 584.00 MB/508.55 MB

-- (584-508.55)/8=9.5, CEILING(9.5/8)*8=16


DBCC SHRINKFILE (N'tempdev' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp2' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp3' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp4' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp5' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp6' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp7' , 0, TRUNCATEONLY)

DBCC SHRINKFILE (N'temp8' , 0, TRUNCATEONLY)

GO

/*

-- 強制釋放佔用的記憶體

DBCC FREESYSTEMCACHE ('ALL')

DBCC FREEPROCCACHE

DBCC DROPCLEANBUFFERS

DBCC FREESESSIONCACHE

GO

*/

DBCC SHRINKFILE (tempdev, 8);

DBCC SHRINKFILE (temp2, 8);

DBCC SHRINKFILE (temp3, 8);

DBCC SHRINKFILE (temp4, 8);

DBCC SHRINKFILE (temp5, 8);

DBCC SHRINKFILE (temp6, 8);

DBCC SHRINKFILE (temp7, 8);

DBCC SHRINKFILE (temp8, 8);

GO