Sql-Server

刪除文件列後 SQL Server 數據庫大小不變

  • December 14, 2016

我有一個包含大約 10 000 條記錄的表的數據庫。此表中的一列VARBINERY(MAX)是用於儲存圖像的。該數據庫的備份大約為 1.2GB。SQL Server Management Studio 中顯示的大小約為 3.5GB。

假設圖像構成了這個大小的大部分,我刪除了該列。這根本沒有改變數據庫的大小。備份和數據庫大小仍然相同。這怎麼可能?

當你刪除一個表時,它會釋放數據庫中的空間,但不會回到作業系統,因為你的數據庫已經分配了這個空間。您需要縮小數據庫。但這不是一個好主意,因為在數據庫中有空閒空間很好,所以它可以增長而不需要讓作業系統增長你的文件然後使用它。這可能會導致碎片化。

如果您決定縮小數據庫,我建議您重建索引或重新組織以避免任何碎片。

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