結合インデックス行圧縮の固定列セット - Advanced SQL Engine - Teradata Database

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

Product
Advanced SQL Engine
Teradata Database
Release Number
17.05
Published
2021年1月
Language
日本語
Last Update
2021-03-30
dita:mapPath
ja-JP/ncd1596241368722.ditamap
dita:ditavalPath
ja-JP/ncd1596241368722.ditaval
dita:id
B035-1144
Product Category
Software
Teradata Vantage
column_name
行圧縮のために結合インデックスに含める複数列のリストの1つ。この列セットは結合インデックスの行の固定部分を示します。これらの列が、最初の括弧で囲まれた反復列セットと共に、圧縮結合インデックス定義の圧縮部分を形成します。
column_nameには列別名を使用して別名を指定できます。
システム派生列のPARTITIONまたはPARTITION#LLnは、column_nameリストの一部として指定することはできません。
ただし、PARTITIONまたはPARTITION#L nという名前のユーザー定義列は指定できます。
選択リスト内の式で定義された結合インデックスは、基本テーブル列のみを使用して定義された結合インデックスよりも対象範囲が限定されます。 ただし、単一テーブル結合インデックスの定義で複合式を定義する場合は、必ず統計を収集します。これは、最適化ルーチンはその統計を直接使用して、クエリー述部で指定された基本テーブル式の選択性を評価するためです。 参照整合性ルールについては、<Teradata Vantage™ - SQLリクエストおよびトランザクション処理>を参照してください。
UDT列に基づいた式または、以下を除く少なくとも1つの列を参照する式に基づいた式を作成できます。
  • 集約関数またはOLAP関数に基づいた式
  • UDFに基づいた式
  • DEFAULTなどの明示的に禁止された組み込み関数に基づく式。詳細は、<Teradata Vantage™ - SQL関数、式、および述部、B035-1145>を参照してください。
これらの式にはすべて別名を指定する必要があります。指定しない場合、Vantageはリクエスト元にエラーを返します。
指定した列の中で2つが同じ名前である場合は、列別名を使用してその両方の名前に別名を指定する必要があります。
圧縮結合インデックスの列の合計数は128列までなので、固定列セットには最大64列まで指定できます。結合インデックスの固定列コンポーネントには、任意の数の固定列を格納できます。ただし、固定部分/反復部分の1つのペアのサイズの合計は、Vantageの行サイズ制限を超えることはできないという物理的な制限があります。
ROWID
最適化ルーチンが、部分的にしかカバーしないインデックスを基本テーブルに結合することによりカバーされない列にアクセスするには、column_listリストの値としてキーワードROWIDを指定します。column_nameグループ列の固定セットと反復セットの両方にROWIDを指定することはできません。
ROWIDを指定できる場所は、CREATE JOIN INDEXリクエストの最も外側にある選択リストだけです。
ROWIDには列別名を使用して別名を指定できます。
結合インデックス定義で複数のテーブルを参照する場合、それぞれのROWIDの指定を完全修飾する必要があります。
GROUP BY句にROWIDを指定する場合、それに別の列名を定義しなければなりません。GROUP BY仕様の列リスト引数では、リテラルROWIDは無効です。
結合インデックス定義の選択リスト内でROWID列別名を参照する場合、結合インデックスに対してセカンダリ インデックスを作成するCREATE INDEXリクエスト内でもその列別名を参照することができます。ただし、CREATE INDEXリクエストの中でROWIDキーワードを直接参照することはできません。