有一個項目上的數據庫使用了幾個月.mdf文件與.ldf文件加起來竟然達到了100G+,這樣下去硬盤會被撐爆的。
這樣的原因是因為異常情況造成某個數據表中有大量的冗余數據,將異常數據表的冗余數據清理之后,mdf文件並沒有變小,因為對數據庫進行了刪除操作,ldf文件反而變增大很多!根據項目情況考慮使用作業方式定時壓縮數據文件大小,壓縮之后只有十幾兆的大小。
Setp1:開啟SQL Server Agent服務
使用作業需要SQL Agent服務的支持,並且需要設置為自動啟動,否則你的作業不會被執行。
以下步驟開啟服務:開始——>運行——>輸入"services.msc"——>進入服務,開啟SQL Server Agent服務,並設置為自動。
如圖:

Setp2:創建作業
創建作業的過程這里就不說了,作業執行的命令為:
DECLARE @Error INT SET @Error=(SELECT TOP 1 size/128.0 - CAST(FILEPROPERTY([NAME], 'SpaceUsed') AS int)/128.0 AS AvailableSpaceInMB FROM sys.database_files ORDER BY [NAME] DESC) --PRINT @Error IF(@Error>1) BEGIN ALTER DATABASE HCJK_Customer --數據庫名字 SET RECOVERY SIMPLE; --設置簡單恢復模式 DBCC SHRINKFILE (HCJK_Customer, 1); --(M)不能小於1M,參數“HCJK_Customer”應為 SELECT [name] FROM sys.database_files DBCC SHRINKFILE (HCJK_Customer_log, 1); --(M)不能小於1M,參數“HCJK_Customer_log”應為 SELECT [name] FROM sys.database_files ALTER DATABASE HCJK_Customer SET RECOVERY FULL; --恢復為原來完整模式 END --ELSE --BEGIN -- PRINT @Error --END
壓縮操作前的.mdf文件與.ldf文件大小:

壓縮操作后的.mdf文件與.ldf文件大小:

