索引の作成

索引を使用して、データのソートと選択ができます。さらに、索引を使用すると、システムはデータをより速く取り出すことができ、照会のパフォーマンスが向上します。

索引を作成するには、CREATE INDEX ステートメントを使用します。 次の例では、CORPDATA.EMPLOYEE 表の LASTNAME 列に対する索引を作成します。

  CREATE INDEX CORPDATA.INX1 ON CORPDATA.EMPLOYEE (LASTNAME)

表内の列のデータと完全一致しない索引を作成することもできます。例えば、以下のように、大文字バージョンの社員名を使用する索引を作成できます。

  CREATE INDEX CORPDATA.INX2 ON CORPDATA.EMPLOYEE (UPPER(LASTNAME))

SQL で使用可能なほとんどの式を、キー列の定義中に使用できます。

索引はいくつでも作成できます。ただし、索引はシステムによって保守されるため、索引の数が多いとパフォーマンスが低下することもあります。 コード化ベクトル索引 (EVI) というタイプの索引を使用すると、並列処理が簡単に行え、より高速のスキャンが可能になります。

既存の索引とまったく同じ属性を持つ索引を作成する場合、新規の索引は既存の索引のバイナリー・ツリーを共用します。そうでない場合は、別のバイナリー・ツリーが作成されます。 新規索引の列の数が少ないという点を除き、新規索引の属性が別の索引と全く同じである場合でも、別のバイナリー・ツリーは作成されます。 別のバイナリー・ツリーが作成される理由は、余分の列があると、それらの列を更新するカーソルまたは UPDATE ステートメントが索引を使用できないようになるためです。

索引は、CREATE INDEX ステートメントの実行時に有効な分類順序を使用して作成されます。 分類順序は、索引のすべての SBCS 文字フィールドか、UCS-2 または UTF-16 グラフィック・フィールドに適用されます。