Sql-Server

每天被截斷和收費的表的索引優化

  • May 10, 2022

我是最近招聘的數據工程師,我已經制定了一堆計劃每天執行的 ETL 管道,目標表被截斷並再次收費。

當我到達時,我發現其他 ETL 也以每天的方式執行,但是當我檢查索引上的碎片百分比時,比率太高了,所以我正在考慮為所有索引創建一個優化任務。

大多數聚集索引(主鍵)都做得很好,但非聚集索引受到高度碎片的影響,我應該如何以及何時重建/重組索引?在載入新數據之後還是之前?

我會這樣做,

  1. 在重新載入之前截斷表。
  2. 編寫現有的索引定義並刪除現有的。
  3. 執行重新載入應該*比以前快得多,*因為表上沒有預先存在的索引。
  4. 然後,使用從步驟 (2) 中提取的定義重新創建索引。

優點:

  • 快速載入時間
  • 控制您關心的碎片。

缺點:

  • 每次您必須重新創建索引。

注意:如果完成時間是一個因素,那麼您可能需要嘗試兩種方法(重新創建與重新建構)並查看最適合您的方法。

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