alter table [インデックス名] on [テーブル名] rebuild でインデックスの断片化を解消することができる。SQL Server Management Studio でもテーブル名の下にある[インデックス]を右クリックすると再構成や再構築のメニューが出てくる。
しかし、断片化がきれいに 0 になるならいいが、場合によっては断片化が解消されない、時にはひどくなるケースもある。
再構築、つまり rebuild はキーを一度削除してからつけ直す処理であるが、これで解消されないってどういうことだろう?テーブルを再作成しても駄目なケースも・・。
ただ、これには傾向があるかもしれない。今のところ思うのは
・非クラスター化キーだけで構成されている場合に発生するケースが多いように思う。
・数字でも文字でも、値の乖離が大きい割に、値が偏在している場合に多いように思う。
例えば、キー項目の値が一様に分布しているのではなく、1 ~ 4000 と 200000 ~ 206000 の2つの範囲に偏在している、というケースであるにというような場合(数値は実例ではなくモデル)である。
このへんはもうちょっと調べて見るなりしてみようと思う。
しかし、断片化がきれいに 0 になるならいいが、場合によっては断片化が解消されない、時にはひどくなるケースもある。
再構築、つまり rebuild はキーを一度削除してからつけ直す処理であるが、これで解消されないってどういうことだろう?テーブルを再作成しても駄目なケースも・・。
ただ、これには傾向があるかもしれない。今のところ思うのは
・非クラスター化キーだけで構成されている場合に発生するケースが多いように思う。
・数字でも文字でも、値の乖離が大きい割に、値が偏在している場合に多いように思う。
例えば、キー項目の値が一様に分布しているのではなく、1 ~ 4000 と 200000 ~ 206000 の2つの範囲に偏在している、というケースであるにというような場合(数値は実例ではなくモデル)である。
このへんはもうちょっと調べて見るなりしてみようと思う。