ORDER BY - Teradata Database - Teradata Vantage NewSQL Engine - ORDER BY句、CREATE INDEX SQL文。

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

Product
Teradata Database
Teradata Vantage NewSQL Engine
Release Number
16.20
Published
2019年3月
Language
日本語
Last Update
2019-10-29
dita:mapPath
ja-JP/wkf1512081455740.ditamap
dita:ditavalPath
ja-JP/wkf1512081455740.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage

単一の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リストに指定された最初の列を使用してインデックス内の行を順序付けます。