IBM® Informix® 12.10

クラスタ化インデックスの作成あるいはインデックスのクラスタへの変更

状況によっては、クラスタ化インデックスを作成するか変更する場合に、エクステントのインタリーブを除去できます。CREATE INDEX 文や ALTER INDEX 文の TO CLUSTER 節を使うと、データベース サーバでは表がソートされ再構成されます。

TO CLUSTER 節は、インデックスの順序と一致するように物理表の行を再配列します。詳しくは、クラスタ化を参照してください。

TO CLUSTER 節がインタリーブ エクステントを削除するのは、次の条件のときです。
  • 各表を再構成できるだけの大きさの隣接領域がチャンク内にあること。
  • データベース サーバがその隣接領域を使って表を再構成すること。

    未使用領域ブロックが大きい方の隣接領域の前に存在する場合、データベース サーバでは小さい方のブロックから割り当てられることが考えられます。データベース サーバは、ALTER INDEX プロセスの領域をチャンクの最初から割り当てて、追加エクステントに指定されているサイズ以上の未使用領域ブロックを探します。チャンクに分散された小さい方の未使用領域ブロックを使って表が再構成された場合は、エクステント インタリーブは削除されません。

未使用領域ブロックの位置とサイズを表示するには、oncheck -pe コマンドを実行します。

ALTER INDEX 文の TO CLUSTER 節を使用するには

  1. チャンク内の各表について、クラスタ化するインデックス以外の、フラグメント化されたインデックスあるいは分離されたインデックスをすべて削除します。
  2. ALTER INDEX 文の TO CLUSTER 節を使用して、残りのインデックスをクラスタ化します。 ここで、行を再編成して表を再構成すると、インタリーブ エクステントを削除することができます。
  3. その他のインデックスをすべて再作成します。

クラスタ化の前にインデックスを削除する必要はありません。しかし、データベース サーバではインデックスを使ってクラスタ順にデータ行を読み込むため、ALTER INDEX プロセスは CREATE INDEX プロセスよりも早く処理されます。また、できあがったインデックスはよりコンパクトです。

問題の再発を防ぐために、表領域エクステントのサイズを大きくすることを検討してください。


フィードバックの送信 | 例の共有 | トラブルシューティング

PDF を見つけるには、Publications for the IBM Informix 12.10 family of products を参照してください。
リリース ノート、ドキュメント ノート、マシン ノートについては、リリース ノート・ページを参照してください。
タイムスタンプ リリース日: 2013 年 3 月