Sql-Server

刪除行後釋放空間

  • August 27, 2013

我有一個 SQL Server 2008 實例,一個表非常大(日誌數據),所以我刪除了舊日誌。現在我開始閱讀關於這個問題的文章,這裡有一篇.

在我看來,沒有解決辦法!如果我縮小數據庫然後重建索引,數據庫的大小將與以前大致相同。如果我不重建索引,數據庫會縮小,但性能會降低,這不是一個選擇。

因此,縮小生產數據庫似乎不是一種選擇。有什麼解決辦法嗎?從數據庫中刪除是否有意義?大公司如何從他們的數據庫中刪除日誌數據?

為什麼需要縮小文件?在大量刪除後重建 CI(縮小文件)將有助於使這些頁面可用於未來的數據。縮小文件只是意味著當您添加更多數據時它必須再次增長。所以在此期間縮小它沒有任何好處 - 哦,你釋放了一些空間,但只是暫時的。

您應該查看的另一件事是表分區(取決於 SQL Server 版本)。它可以使處理舊數據變得更加容易。

大公司從不縮小數據庫文件——日誌備份後日誌會重用空間。

基本上,收縮/增長是為了低性能。您需要性能,將文件初始化為特定的計劃大小,然後在需要時手動調整大小。你可以使用“emergency autogrow”但你不會收縮。做什麼的?我是說,認真的。我有一個小型(現在 400 GB)數據庫,它存在於專用磁碟中以獲得性能 - 我不會從縮小中獲得任何收益。事實上,一旦我得到下一組光碟(發貨時),我就會對其進行擴展,並且我會手動進行。

與日誌相同。他們住在自己的專用光碟上。它們已針對我喜歡的尺寸進行了預初始化。我不縮小它們 - 為什麼?

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