Sql-Server

重建索引的最佳恢復模型

  • August 14, 2022

我正在尋求一些建議。我必須重建我的數據庫索引(因為縮小),但由於磁碟空間不足,我不確定哪種恢復模式更好,以避免出現磁碟空間不足錯誤以增加日誌文件的大小。請幫助我在簡單或批量日誌恢復模式之間進行選擇。

收縮是一種浪費的操作。. 諸如索引重建之類的索引維護也是一種浪費的操作。. 重建索引會在數據文件中產生大量未使用的分配空間。索引碎片在性能方面毫無意義。如您所見,縮小數據庫會導致高水平的索引碎片。這是一個惡性循環,就像布倫特在我連結的第一篇文章中提到的那樣。我的建議,不要這樣做(除了非常罕見的情況)。

但是,如果您仍然對重建索引感到困惑,那麼使用簡單恢復模型這樣做至少會最大限度地減少您在該過程中的事務日誌中的日誌記錄。但是,它不會為您節省數據文件中的任何空間。問題是通過切換到簡單恢復模式,您會在上次完整備份後失去時間點恢復,因此在下一次完整備份之前存在數據失去風險。在切換回完整恢復模式並進行完整備份之前,您將無法使用時間點恢復。如果您的恢復點目標可以容忍這一點,那很好。

您可以使用一些功能來重建索引,這可能有助於您的事業。

如果您的 TEMPDB 位於專用磁碟上,則可以嘗試使用 TEMPDB 執行索引重建。此外,您可以通過在執行索引優化時限制頁數來從小到大工作。

您可以為此使用 OLA hallengren 的工作。 https://ola.hallengren.com/sql-server-index-and-statistics-maintenance.html

使用 OLA Hallengren 時,我還建議單獨更新統計資訊。至於恢復模式,我不確定它是否重要。

我相信關於碎片化的普遍共識,超過 5% 建議重組,超過 30% 則應該重建。

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