Sql-Server

縮小數據庫有什麼缺點嗎?

  • August 29, 2017

我的生產伺服器的數據庫意外增長,幾乎我要創建一個作業來縮小每月執行一次的數據庫。這是個好主意嗎?

備份失敗,並且記錄了大量事務的失敗時間,這使數據庫迅速增長。

我正在使用 SQL Server 2008 R2。

備份失敗,並且記錄了大量事務的失敗時間,這使數據庫迅速增長。

如果這是一次性的,並且您的日誌文件 (LDF) 非常大,請進行日誌備份,然後將日誌文件(僅)收縮到其膨脹前的級別,僅此一次。否則,就讓它保持原樣。

您不想縮小數據文件的原因是因為它會使您的索引碎片化,這會影響性能。此外,因為在收縮數據庫時索引會變得碎片化。下次重新索引開始時,您的數據文件將因重建而增長,而您的日誌文件將因重組而增長。

您不想將日誌文件縮小到小於其通常工作大小的原因是因為即時文件初始化適用於數據文件,但不適用於日誌文件,因此如果日誌文件將再次增長到該大小隨著它的發展,它會受到性能的影響。

有很多關於為什麼收縮不好的資訊。只有在你有充分理由的情況下才這樣做。

缺點是效率。如果您的數據庫不斷擴展,那麼這樣做是有原因的。縮小它會做大量的 IO,數據庫將花費更多時間來撤消,因為它會擴展回其原始大小。這是大量的數據庫工作,最終沒有效果。

最好將精力花在了解導致其增長的原因上,並(在某些情況下)減輕該特定過程。例如,也許有一個大的批量 ETL 操作可以隔離到自己的表空間/數據文件中以提高效率,在操作完成後刪除臨時表。

結果是,對於給定的工作負載和數據集,數據庫通常具有平衡大小,並且需要進行結構更改才能移動它。

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