17.05 - ordering_clause - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 構文規則および例

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Release Date
2021年1月
Content Type
プログラミング リファレンス
Publication ID
B035-1144-175K-JPN
Language
日本語 (日本)

単一のNUSI列による、各AMPの行の順序: 値順またはハッシュ順。

HASHを指定した場合、行はAMP上でハッシュ順となります。HASHを指定しなかった場合、行は値順になります。

ORDER BY句と共に作成された複数列NUSIは2つの連続するインデックスとしてカウントされ、インデックスの最大数は、セカンダリ インデックス、ハッシュ インデックス、および結合インデックスの任意の組み合わせで32個です。これには非テンポラル テーブルにPRIMARY KEYおよびUNIQUE制約を実装するために使用されるシステム定義のセカンダリ インデックスと、テンポラル テーブルにPRIMARY KEY制約およびUNIQUE制約を実装するために使用される単一テーブル結合インデックスが含まれます。詳細は、<Teradata Vantage™ - テンポラル テーブル サポート、B035-1182>を参照してください。CREATE INDEXトピックの、値順NUSIで連続インデックスが重要な理由(<Teradata Vantage™ - SQLデータ定義言語 - 詳細トピック、B035-1184>)を参照してください。

ORDER BY句を指定しない場合、システムでは各インデックス行をそれらの列に基づいて自動的にハッシュ順にします。

システム派生PARTITIONまたはPARTITION#Ln列で順序付けることはできません。ただし、partitionという名前のユーザー定義列を指定することはできます。

UDT列に対してHASHで順序付けすることはできますが、VALUEで順序付けすることはできません。

ORDER BYは、地理空間インデックスには適用できません。

VALUES
ORDER BY列に対する値順。
連続した値の範囲を返す問合わせを最適化する場合は、VALUESを選択します(特に、カバー インデックスまたは入れ子結合の場合)。
ORDER BY VALUESはUDT列に指定することができません。
VALUESは、地理空間インデックスには適用できません。
HASH
ORDER BY列に対するハッシュ順。
ハッシュ順を1つの列だけに限定する場合は、HASHを選択します。
NUSIが複数の列に設定されている場合、そのいずれかの列でNUSIをハッシュ順にすると、結合条件にその列だけがかかわっている場合に、入れ子結合に対してNUSIを加わらせることができます。
ORDER BY HASHはUDT列に指定することができます。
HASHは、地理空間インデックスには適用できません。
order_column_name
使用するソート順序を指定する、index_column_nameリスト内の列。
セカンダリ インデックス内の順序列は、Period、BLOB、CLOB、XML、LOB UDT、Geospatial、ARRAY/VARRAY、またはVARIANT_TYPEデータ型であってはなりません。
システム派生列のPARTITIONまたはPARTITION#Lnは、order_column_nameリストの一部に含めることはできません。
ただし、PARTITIONまたはPARTITION#L nという名前のユーザー定義列を指定することはできます。nは1~62の範囲です。
値順に並べ替えられた4バイト以下のorder_column_nameのデータ型としてサポートされているものは、次のとおりです。
  • BYTEINT
  • DATE
  • DECIMAL
  • INTEGER
  • SMALLINT
明示的なorder_column_nameを指定せずにORDER BYを指定した場合、システムではindex_column_nameリストに指定された最初の列を使用してインデックス内の行を順序付けます。