IBM® Informix® 12.10

クラスタ化

クラスタ化は、表の行を適切に配置してディスク上のその物理順をインデックス内のエントリの順序に 一致させる方法です。

表が一定のインデックスによって順序付けられていることが分かれば、ソートを行う必要はありません。また、表がその列内で探索されるときに、非順次ではなく順次に読み込まれるほうが効果的であることが明らかな場合もあります。これらの点については、問合せと問合せオプティマイザを参照してください。
ヒント: インタリーブされたエクステントを除去するため、インデックスをクラスタに変更する方法については、クラスタ化インデックスの作成あるいはインデックスのクラスタへの変更を参照してください。
データベース stores_demo では、orders 表の郵便番号列に zip_ix というインデックスが付いています。次の文を実行すると、customer 表の行が郵便番号によって降順にソートされます。
ALTER INDEX zip_ix TO CLUSTER
インデックスの付いていない列に対して表をクラスタ化するには、インデックスを作成しなければなりません。次の文を使用すると、orders 表が発注日によって再び順序付けられます。
CREATE CLUSTER INDEX o_date_ix ON orders (order_date ASC)

表を再び順序付けるには、データベース サーバで表をコピーしなければなりません。前の例では、データベース サーバによって表内のすべての行が読み込まれて、インデックスが構成されます。次に、データベース サーバはインデックス エントリを順番に読み込みます。それぞれのエントリごとに、表の一致行が読み込まれて、それが新しい表にコピーされます。新しい表の行が目的の順序になります。この新しい表によって古い表が置き換えられます。

クラスタ化は、表を変更するときに保存されません。新しい行を挿入すると、それらの行は内容に関係なく表の終りに物理的に格納されます。行を更新して、クラスタ列の値を変更すると、行が表内の元の位置に再度書き込まれます。

クラスタ化は、行の順序が継続的な更新によって不安定になった後に復元できます。次の文を使用すると、表が再び順序付けられてデータ行がインデックス順に復元されます。
ALTER INDEX o_date_ix TO CLUSTER

通常、再クラスタ化は、元のクラスタ化よりも時間がかかりません。ほぼクラスタ化されている表の行を読み出すときには、順次走査の場合と同じような入出力効果が得られるためです。

クラスタ化と再クラスタ化には多くの領域と時間が必要です。クラスタ化を一部省くには、適切な順序で最初から表を構成するようにします。


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

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