索引構成表とクラスタの管理はじめに索引構成表クラスタはじめに索引構成表やクラスタは、索引のように、データベース検索のパフォーマンスを向上させるためにOracleから提供されている機能である。索引構成表は索引ではなく、B*Tree構造に基づいてデータが格納された「表」である。データは表の主キーに基づいてソートされている。(通常の表では挿入した順)ROWIDは持たない。ROWIDの代わりに、非キー列がリーフエントリに格納されている。そのため、表とは別に索引用の領域を必要としないため、必要なディスクスペースが減るという利点がある。主キーでソートされているため、主キーによる操作は高速に行なうことができる。INDEX句を指定して作成する。主キーは必ず指定する必要がある。USR3;クラスタクラスタとは関連する列に基づいて、2つ以上の表を結合して、一つのデータブロックに格納したものである。データは特定の列の値(クラスタキー)に基づいて、複数の表が分類結合されて同じデータブロックに格納されている。(通常の表では挿入した順)ランダムアクセスは高速になるが、全表走査は遅くなる傾向がある。クラスタキー列を更新すると、その行が別の場所に再配置されるため、更新パフォーマンスは悪くなる。クラスタキーは、1つ以上の列を指定することができる。クラスタに格納する全ての表にクラスタキーに対応する列が必要。クラスタ内の表に、クラスタキー以外の列を主キーとして設定することは可能。●索引クラスタとハッシュクラスタデータの分類の仕方によって、クラスタは索引クラスタとハッシュクラスタに分類される。索引クラスタハッシュクラスタ複数の表から共通のクラスタキーの列値をもった行がまとめられて、一つの領域(クラスタブロック)に格納する。ハッシュ関数にクラスタキーの列値を渡し、その値にしたがって複数の表を分類して、クラスタブロックに格納する。クラスタキーにしてクラスタ化すればパフォーマンスが向上する。大量データの中から1件のデータを検索するような処理でパフォーマンスが向上する。TABLE文にCLUSTER句を指定して表をクラスタ内に格納する。INDEX文を使って索引を設定する必要がある。※SIZE句で指定するクラスタブロックサイズは、各クラスタキーに属するデータ量の平均値を見積もって決定する。SIZE句で指定できる最大値およびデフォルト値は、ブロックサイズ。HASH_EMP(empno);※ハッシュクラスタの場合、HASHKEY句を使ってハッシュキーの数を指定する。このとき、一つのキーに対応する行数を決定し、その行数×行サイズによってクラスタブロックサイズを決定する必要がある。