17.00 - 17.05 - 組み合わせパーティション式 - Advanced SQL Engine - Teradata Database

Teradata Vantage™ - SQLデータ定義言語 詳細トピック

Product
Advanced SQL Engine
Teradata Database
Release Number
17.00
17.05
Release Date
2020年6月
Content Type
プログラミング リファレンス
Publication ID
B035-1184-170K-JPN
Language
日本語 (日本)
このトピックでは、組み合わせパーティション式とは何か、Teradata Databaseはそれをどのように利用するのかについて説明します。
  • Teradata Databaseは、それぞれの行パーティション レベルに定義されたパーティション式と、列パーティション レベルの列パーティション数1から、組み合わせパーティション式を導出します。

    n個のパーティション レベルがある場合(nは定義されているパーティション レベルの数)、組み合わせパーティション式は次のように定義されます。


    組み合わせパーティション式

    説明

    等式要素 説明
    pi レベルiの行パーティション式(左から右の順でレベル番号を付ける)。列パーティション レベルについては1です。
    dd i
    次の積に等しい定数値。
    組み合わせパーティションを計算するためのdd値
    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でパーティション化される行の数を定義します。パーティション列の特定の値の組み合わせパーティション式の結果は、組み合わせパーティション数と呼ばれます。

  • マルチレベル パーティションでは、組み合わせパーティション式で定義されるパーティション数がこれより多くなることがあります。データの入ったパーティションの数が多い場合、プライマリ インデックスのアクセス、結合、およびプライマリ インデックスに対する集約のパフォーマンスが低下することがあります。したがって、マルチレベル パーティションは、大幅な同時パーティション排除を伴わないこれらの操作が頻繁に行なわれる場合、適切な選択とはいえません。ただし、組み合わせパーティション式に対して多数の行パーティションを定義すれば、細かな行パーティション排除が可能となります。パーティションの粒度の判別を参照してください。