使用作業定時壓縮數據庫


有一個項目上的數據庫使用了幾個月.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文件大小:


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM