Sql-Server

截斷大表後數據庫備份時間和大小會減少嗎

  • August 16, 2017

我們的 SQL Server 數據庫中的兩個表相當於 500M 行和 350GB 數據。磁碟空間是我們保留備份的一個問題,執行備份的時間也是如此。我們計劃截斷這兩個表。

我知道要回收磁碟空間,我們需要在截斷後縮小數據庫,然後進行索引重建以修復碎片索引。但由於我們不確定重建需要多長時間(我們現在正在 Azure 中啟動測試伺服器 VM 進行測試),同時我們正在尋找增量收益。在截斷之後(在收縮和重建之前),備份時間和生成的備份文件大小(在 7z 壓縮之後)是否會因此而顯著減少?

雖然我處理不是由 SQL 本身壓縮的 SQL Server 備份已經有一段時間了,但 SQL 備份的是您的數據,而不是您的可用空間。

如此處所述

完整備份中包含的數據不一定是所有數據文件的全部內容。備份將僅包含數據文件中分配的頁面。

TRUNCATE釋放數據頁。如果您的數據佔用的空間從 700GB 下降到 350GB,那麼備份的大小也應該是原來的一半左右,並且備份的時間也應該同樣減少。

引用自:https://dba.stackexchange.com/questions/183647