SQL Server壓縮資料庫檔案

來源:互聯網
上載者:User

標籤:解決方案   get   資料庫檔案   資料檔案   while   使用   迴圈   sql   filename   

當mdf或者ndf檔案很大時,傳統的dbcc shrinkfile命令很難生效,目前可行的解決方案:

  1. 建立新檔案組通過對剩餘表重建並指定叢集索引到新檔案組方式清空源檔案組方式進行儲存空間釋放
  2. 參照使用以下指令碼寫迴圈等待檔案收縮完成:

大資料檔案收縮

DECLARE @BeginSize       BIGINT                                 --原始大小MB

DECLARE @EndSize BIGINT                                 --最終大小MB

DECLARE @ShrinkSize BIGINT                             --需要收縮的大小MB

DECLARE @UnitSize INT                                        --每次收縮的大小MB

DECLARE @Loop                INT                     --迴圈次數

DECLARE @FileName       VARCHAR(256)                  --收縮的檔案邏輯名稱

 

SET @UnitSize = 512

SET @BeginSize = 239493

SET @EndSize = 164413

SET @ShrinkSize = @BeginSize - @EndSize

SET    @FileName = N‘需要收縮的資料檔案邏輯名稱‘

SET @Loop = 1

 

WHILE       @ShrinkSize > @Loop * @UnitSize

BEGIN

 

SET @EndSize = @BeginSize - @Loop * @UnitSize

PRINT ‘DBCC SHRINKFILE (‘ + CAST(@FileName AS VARCHAR) + ‘,‘ + CAST(@EndSize AS VARCHAR) + ‘) BEGING DATETIME:‘ + CAST(GETDATE() AS VARCHAR)

DBCC SHRINKFILE (@FileName, @EndSize)

PRINT ‘DBCC SHRINKFILE (‘ + CAST(@FileName AS VARCHAR) + ‘,‘ + CAST(@EndSize AS VARCHAR) + ‘) END DATETIME:‘ +CAST(GETDATE() AS VARCHAR)

SET @Loop = @Loop + 1

 

END

 

SQL Server壓縮資料庫檔案

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.