17.10 - PRIMARY AMP - Advanced SQL Engine - Teradata Database

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

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

基本AMPインデックスを追加します。

行は、列パーティション テーブルまたは結合インデックス用に、各AMPにハッシュ分散されます。列パーティション値はそれぞれのAMP上で、内部パーティション番号と列パーティション テーブルまたは結合インデックス用の行ハッシュによって順序付けられます。

PRIMARY AMP句を指定する場合、インデックス リスト内に単独で、またはPRIMARY AMP句内で、列パーティション レベルを含むPARTITION BY句を指定する必要があります。

INDEX
読みやすくするために、必要に応じてINDEXキーワードをAMPとともに指定できます。
index_name
基本AMPインデックスの名前。データベース オブジェクトの命名ルールについては、<Teradata Vantage™ - SQLの基本、B035-1141>を参照してください。
(index_column_name)
基本AMPインデックス列。複合プライマリ インデックスの場合、index_column_nameは括弧で囲まれたすべてのインデックス列のカンマ区切りリストを示します。派生PERIOD列の開始列または終了列をプライマリ インデックス内に指定することはできません。
行レベル セキュリティ制約列をプライマリ インデックスのコンポーネントとして含めるようにテーブルを変更することはできません。
JSONデータ型で定義されている列にプライマリ インデックスは定義できません。

例: 基本AMPインデックスと列パーティションを持つ結合インデックス

この例では、次のテーブルが作成済みであることを想定しています。

CREATE TABLE t1 (a INT, b INT, c INT, d INT) PRIMARY INDEX (a);

次の各CREATE JOIN INDEX文は同等です。

CREATE JOIN INDEX jt1_1 AS SELECT ROWID AS rw, a, b FROM t1 WHERE a<10
  PRIMARY AMP (a) PARTITION BY COLUMN (rw NO AUTO COMPRESS, ROW(a,b));
CREATE JOIN INDEX jt1_1 AS SELECT ROWID AS rw, a, b FROM t1 WHERE a<10
  PRIMARY AMP INDEX (a) PARTITION BY COLUMN (rw NO AUTO COMPRESS, ROW(a,b));

例: プライマリ インデックスと行と列によるパーティション化を持つ結合インデックス

この例では、次のテーブルが作成済みであることを想定しています。

CREATE TABLE t1 (a INT, b INT, c INT, d INT) PRIMARY INDEX (a);

この例では、プライマリ インデックスを持ち、行と列によってパーティション化されるCREATE JOIN INDEX文を示しています。

CREATE JOIN INDEX jt1_4 AS SELECT ROWID rw, a, b, d
  FROM t1
  PRIMARY INDEX (a) PARTITION BY (RANGE_N(b BETWEEN 1 AND 1000 EACH 1), COLUMN);