グローバル一時テーブル、揮発テーブル、および標準的な基本テーブルのプライマリ インデックスは、パーティション化をしてもしなくてもかまいません。非パーティションNoPIテーブルは、パーティション化するプライマリ インデックスがないため、列パーティション テーブルを除いて、パーティション化することはできません。列パーティション テーブルを参照してください。
非パーティション プライマリ インデックスは、行がAMPに割り当てられる際に使用される従来のプライマリ インデックスです。行ハッシュの順序を維持することを別にすれば、一度AMPに対してハッシュされた後は、行の割当て処理の実行が付加的に行なわれることはありません。
パーティション プライマリ インデックス(PPI)では、AMP上のユーザー定義データ パーティションに行を割り当てることができ、プライマリ インデックス値に基づいて予測される範囲クエリーのパフォーマンスを強化します。詳細については、Teradata Vantage™ - データベースの設計、B035-1094およびTeradata Vantage™- SQLリクエストおよびトランザクション処理、B035-1142を参照してください。
パーティション化は、単一レベルまたは複数レベルで定義できます。複数レベルで定義されたPPIは、マルチレベルPPI、またはMLPPIと呼ばれます。
テーブルの組み合わせパーティションの数に応じて、そのパーティション番号は行ヘッダーの2バイトまたは8バイトを消費します。次のテーブルのとおりです。
テーブルの組み合わせパーティションの数 | 行ヘッダーでパーティション番号に使用するバイト数 |
---|---|
≤ 65, 535 | 2 |
> 65,535 | 8 |
ADDオプションを指定した単一レベル列パーティションも、行ヘッダーで2バイトを消費します。
- Kanji1またはKanjiSJISのサーバー文字セットを使用した、列または式を含むCHARACTERデータまたはCHARACTER SET GRAPHICデータの比較。
- 任意の種類のユーザー定義関数
- 集約関数
- 順序付き分析関数
- 組み込み関数
- RANDOM関数
- HASHAMPおよびHASHBAKAMP関数
HASHROWおよびHASHBUCKETされる許可されています。
- システム派生PARTITION列およびPARTITION#Ln列
- 集合演算子
- Subquery
- BLOB、CLOB、またはGeospatialデータ型の列。
- 数値列での直接パーティション
- 1つ以上の列に基づく式
- CASE_N関数に基づく式
- RANGE_N関数に基づく式
それぞれのパーティション戦略のさまざまな使用方法の考慮事項についての詳細は、<Teradata Vantage™ - データベースの設計、B035-1094>を参照してください。
- CASE_N関数に基づく式(詳細は<Teradata Vantage™ - データベースの設計、B035-1094>参照)。
- RANGE_N関数に基づく式(詳細は<Teradata Vantage™ - データベースの設計、B035-1094>参照)。
次の表に、パーティション式に対するCASE_N関数およびRANGE_N関数の使用方法の意図を示します。
使用する関数 | マッピングの定義 |
---|---|
CASE_N | INTEGERメンバーに対する条件の間 |
RANGE_N | INTEGERまたはDATE値からINTEGER数の範囲 |
パーティション化されたテーブルに定義できるパーティション式には、その中に指定できるデータ型、および関数の結果のデータ型に関して、特定の制限があります。
以下の表にその制約のサマリーを示します。
データ型 | PARTITION BY | ||
---|---|---|---|
RANGE_N | CASE_N | 式 | |
ARRAY VARRAY |
N | N | N |
BIGINT | Y | X | I |
BLOB | N | N | N |
BYTE | X | X | X |
BYTEINT | Y | X | I |
CHARACTER | Y | X | I |
CLOB | N | N | N |
DATE | Y | X | I |
DECIMAL NUMERIC |
X | X | I |
NUMBER (正確な形式) | X | X | I |
DOUBLE PRECISION FLOAT REAL |
X | X | I |
NUMBER (概算形式) | X | X | I |
GRAPHIC | N | X | N |
INTEGER | Y | X | Y |
INTERVAL YEAR | X | X | I |
INTERVAL YEAR TO MONTH | X | X | X |
INTERVAL MONTH | X | X | I |
INTERVAL DAY | X | X | I |
INTERVAL DAY TO HOUR | X | X | X |
INTERVAL DAY TO SECOND | X | X | X |
INTERVAL SECOND | X | X | X |
LONG VARCHAR | Y | X | I |
LONG VARCHAR CHARACTER SET GRAPHIC | N | N | N |
PERIOD BEGIN境界関数およびEND境界関数は、有効なPERIOD列で定義されている場合に、パーティション式で有効になり、結果は数値データ型に暗黙にキャストできます。 |
N | X | N |
SMALLINT | Y | X | I |
TIME | X | X | X |
TIME WITH TIME ZONE | X | X | X |
TIMESTAMP | Y | X | X |
TIMESTAMP WITH TIME ZONE | Y | X | X |
UDT | N | N | N |
VARBYTE | X | X | X |
VARCHAR | Y | X | I |
VARGRAPHIC | N | N | N |
JSON | N | N | N |
XML | N | N | N |
次の表は、上記のテーブルで使用されている省略語について説明します。
キー | |
---|---|
記号 | 定義 |
I | パーティション式で有効です。 型が結果のデータ型でもある場合、有効なINTEGER値にキャストできる必要があります。 |
N | パーティション式で無効です。 パーティション式がCASE_N関数を使用して定義されている場合、この型はCASE_N条件で有効ではない。 |
X | パーティション式で有効ですが、式の結果のデータ型にすることはできません。 パーティション式がCASE_N関数を使用して定義されている場合、この型はCASE_N条件で有効は。 |
Y | パーティション式で有効であり、パーティション式の結果のデータ型として有効です。 |