断片化が進んだ索引に対して、再構築(リビルド)と再構成(リオーガナイズ)のどちらを使うかで、負荷・ロック・効果の出方が違う。数値の目安は環境依存なので、「どちらが軽いか/何が付随するか」で選ぶのが実務的。
先に結論
- 再構成 … 比較的軽いオンライン寄りの整理。効果は穏やか
- 再構築 … 作り直しに近く効果大。版やオプションでオンライン可否が変わる。統計も更新されやすい
- 断片化%だけで機械的に切るより、サイズ・アクセス頻度・メンテ枠を見る
- 小さな索引の頻繁なメンテはコスト倒れになりがち
使い分けの感覚
- 断片化が中程度・メンテ時間を短くしたい → 再構成から
- 断片化が大きい・効果をはっきり出したい → 再構築
- オンライン再構築が使えない版/エディションなら、業務時間外の再構築計画が必要
- ヒープや特殊索引、LOB が多い表は事前に影響を確認
運用でやりがちな失敗
- 全索引を毎晩リビルド(ログ・CPU・ブロッキング増)
- 断片化だけ見て、統計やクエリ自体の問題を放置
- メンテ中に重いバッチを同時実行
- フィルファクタやページ密度を無視した一律ジョブ
関連: 実行計画でインデックスが使われないとき
実務の進め方
- 大きい・よく触る索引の断片化とサイズを把握
- メンテ枠(時間・負荷許容)を決める
- 再構成で足りるか、再構築が必要かを個別判断
- 実施後に代表クエリの計画と時間を確認
- ジョブは対象を絞り、成功/失敗を監視
ざっくりまとめ
- 再構成=軽め、再構築=強め(代償あり)
- %閾値よりサイズと業務枠で選ぶ
- 索引メンテはチューニングの一部。クエリ改善とセット
関連記事