- Teradata Databaseは、それぞれの行パーティション レベルに定義されたパーティション式と、列パーティション レベルの列パーティション数1から、組み合わせパーティション式を導出します。
n個のパーティション レベルがある場合(nは定義されているパーティション レベルの数)、組み合わせパーティション式は次のように定義されます。
説明
等式要素 説明 pi レベルiの行パーティション式(左から右の順でレベル番号を付ける)。列パーティション レベルについては1です。 dd i 次の積に等しい定数値。dj レベルjで定義されている最大パーティション数。 合計を区切っている括弧は、組み合わせパーティション式には含まれません。例えば、この合計を1、2、3、4、および5レベルのパーティションについて拡張すると、次のような組み合わせパーティション式になります。piおよびddiは、上記の組み合わせパーティション式の定義に記載されている値です。
パーティション レベル 拡張された合計 1 p 1 2 (p1-1)*dd1+p2 3 (p1-1)*dd1+(p2-1)*dd2+p3 4 (p1-1)*dd1+(p2-1)*dd2+(p3-1)*dd3+p4 5 (p1-1)*dd1+(p2-1)*dd2+(p3-1)*dd3+(p4-1)*dd4+p5 シングルレベル 行パーティションに対する組み合わせパーティション式はp1になるので、この場合の使用ルールに実質的な変更はありません。
列パーティションについては、次のようにして、テーブルの行の特定の列パーティション値に対する組み合わせパーティション数を、テーブルの行の組み合わせパーティション数から次のように派生させることができます。
説明
等式要素 説明 combined_part_number-specific_col_part_value_of_row テーブルの行の特定の列パーティション値を表わす組み合わせパーティション数 cpn 行の組み合わせパーティション c 行内のこの列パーティション値に対する列パーティション数 dd i 1に等しい定数値 この等式は、行パーティション テーブルの行について組み合わせパーティション式を計算する等式と基本的に同じですが、列パーティション レベルとして、1ではなく、テーブルの行の特定の列パーティション値に対応する列パーティション数を使用します。
列パーティションはどのレベルに対しても定義できますが、大部分のケースでは、どの行パーティションよりも前の、最初のレベルに列パーティションを置くことをお奨めします。列パーティションをパーティション階層のうち低いレベルに置くべき理由としては、シリンダの移行や温度に基づくブロック圧縮の効果性がホット データとコールド データについて改善されることが挙げられます。
組み合わせパーティション式は、最終的に各AMPでパーティション化される行の数を定義します。パーティション列の特定の値の組み合わせパーティション式の結果は、組み合わせパーティション数と呼ばれます。
- マルチレベル パーティションでは、組み合わせパーティション式で定義されるパーティション数がこれより多くなることがあります。データの入ったパーティションの数が多い場合、プライマリ インデックスのアクセス、結合、およびプライマリ インデックスに対する集約のパフォーマンスが低下することがあります。したがって、マルチレベル パーティションは、大幅な同時パーティション排除を伴わないこれらの操作が頻繁に行なわれる場合、適切な選択とはいえません。ただし、組み合わせパーティション式に対して多数の行パーティションを定義すれば、細かな行パーティション排除が可能となります。パーティションの粒度の判別を参照してください。