結合インデックスに対して定義される非固有セカンダリ インデックスのセット。
- index_name
- 定義するNUSIのオプションの名前。データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
- ALL
- 定義するNUSIが、圧縮された物理行のみの代わりに、結合インデックスの論理行ごとの行IDのポインタを維持するためのものです。
- ALLを指定すると、データ型のNOT CASESPECIFIC属性も無視されるため、NUSIではケース指定(大文字小文字の区別のある)の値を含むことができるようになります。
- ALLによってNUSIは結合インデックスを対象に含めるようになり、これにより、問合わせに必要なすべての値がセカンダリ インデックス内にあるときは、結合インデックスへのアクセスが不要になることでパフォーマンスが向上します。ただし、ALLではインデックスのストレージ領域の追加使用が必要になる場合もあります。
- このキーワードは、セカンダリ インデックスを結合インデックスの最上位に対して定義する場合にのみ使用します。
- ALLは、PRIMARYインデックスとともに指定することはできません。
- ALLオプションの有無のみが異なる複数のインデックスを指定することはできません。
- index_column_name
- 値がこの結合インデックスのインデックスになる列セット。複数の列を指定した場合、新しいインデックスは各列の値を組み合わせたものに基づいたものになります。
- 1つのインデックスには、最大で64列を定義できます。
- それぞれのインデックスのその順序付けオプションが異なる限り(例えば、VALUESまたはHASH)、複数のインデックスを同じ列に定義することができます。
- 同じ名前の列を2つ指定する場合は、その両方に対して固有の列別名を使用して別名を指定する必要があります。 <Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
- セカンダリ インデックス内の列は、次のデータ型のいずれかにすることはできません。
- Period
- Geospatial
- BLOB
- CLOB
- ARRAY/VARRAY
- index_column_nameリスト内で、システム派生列のPARTITIONまたはPARTITION#Ln(nは1から62までの整数)を指定することはできません。ただし、PARTITIONまたはPARTITION#L nという名前のユーザー定義列は指定できます。
- ORDER BY
- 単一のNUSI列による、各AMP上の行の順序付け。NUSI列値の順序付けは、値順またはハッシュ順にすることができます。ORDER BY句を使用して定義されるそれぞれの複数列NUSIは、1つの結合インデックスにつき32個という制限に対して2つの連続したインデックスとカウントされます。ORDER BY句は、パーティション プライマリ インデックスと同じ結合インデックス定義に指定することはできません。
- ORDER BY句の指定のルールを次に示します。
- partitionという名前のユーザー定義列を指定することはできます。
- VALUES
- ORDER BY列の値による順序付け。これはデフォルトの指定です。
- ORDER BY VALUESはUDT列ではサポートされません。
- 連続した値の範囲を返す問合わせを最適化する場合は、VALUESを選択します(特に、カバー インデックスまたは入れ子結合の場合)。
- HASH
- ORDER BY列に対するハッシュ順。
- ORDER BY HASHはUDT列に指定することができます。
- ハッシュ順をプライマリ インデックスのすべての列にではなく(デフォルト)、1つの列だけに限定する場合は、HASHを選択します。
- NUSIが複数の列に設定されている場合、そのいずれかの列でNUSIをハッシュ順にすると、結合条件にその列だけがかかわっている場合に、入れ子結合に対してインデックスを加わらせることができます。
- order_column_name
- NUSIの順序付けに使用する並び替え順を指定する、選択リスト内の1つの列。
- 結合インデックス内の列は、Geospatial、BLOB、CLOB、XML、LOB UDT、XML UDT、VARIANT_TYPE、またはARRAY/VARRAYデータ型であってはなりません。
- システム派生列PARTITIONまたはPARTITION#Ln(nは1以上62以下の整数)を、column_name_2リストの一部として指定することはできません。
- ただし、PARTITIONまたはPARTITION#L nという名前のユーザー定義列は指定できます。
- 値順に並べ替えられた4バイト以下のcolumn_name_2のデータ型としてサポートされているものは、次のとおりです。
- BYTEINT
- DATE
- DECIMAL
- INTEGER
- SMALLINT