Sql-Server

重建索引

  • December 28, 2020

我們在生產 SQL Server 2014 中有一個名為 WSS_Us_App 的數據庫。在這個數據庫中,所有索引都需要重建,因為大多數索引的碎片級別大於 50%。我計劃在工作時間重建這些索引,因為我被告知不會有問題並且不會導致任何重大問題。

我計劃開始手動重建索引。但是,對於未來,我想設置一個 SQL 作業來為我處理這項任務——也許每個週末都有這個作業執行。

我的問題:

  1. 使用 ONLINE 選項重建這些索引會更好嗎?(我很難理解使用 ONLINE 選項與不使用之間的區別)
  2. 我有一些索引的碎片級別很高,但頁數很低。例如,名為 IX_LogTime 的索引的碎片百分比為 50%,頁數為 2。這是否需要重建?
  1. 您將需要企業版進行線上重建,但優點是您只需要模式鎖定,非線上重建會導致阻塞,所以最好在幾個小時內完成
  2. 用很少的頁面重建索引確實是浪費時間
  3. 如果這是 Sharepoint,請仔細檢查 Sharepoint 文件並使用支持的方法
  1. https://stackoverflow.com/questions/6309614/what-is-the-difference-between-offline-and-online-index-rebuild-in-sql-server
  2. 如果預設頁數超過 1k,MS 建議進行重建\重新組織。較低的頁數會導致在非常小的更改時產生更多的碎片,這就是對這些進行碎片整理沒有用的原因。但是,最終性能只重要 - 如果您在對它們進行碎片整理後看到良好的性能,那麼請繼續這樣做。如果沒有,那麼跳過那些。

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