目的
複数のパーティションが含まれるディスクの読み取り操作で使用する最大メモリ量を指定します。
フィールド グループ
パフォーマンス
有効な範囲
0~500
値は1/10パーセント単位です。つまり、有効範囲は0%~50.0%となります。
デフォルト
デフォルトは、10 (1.0%)です。
変更の反映
DBS制御レコードへの書き込みが行なわれた後。
使用上の注意
一部のパーティション化操作では、Teradata Databaseは、一度に1つずつパーティションを処理するのではなく、空でなく除去されてもいないパーティションのサブセットを一緒に処理します。処理対象の空でない各パーティションごとにコンテキストが保存されます。コンテキストは、対応するパーティション内の現在の位置を定義します。
PPICacheThrP値を使用して、パーティション化操作時のこれらのコンテキストと関連したデータ ブロックで使用されるメモリ量を制限することによって、スワッピングを減らしたり、メモリが不足しないようにしたりすることができます。ただし、PPICacheThrPの値を大きくして、PPI操作で使用できるメモリを増やすことで、これらのパーティション化操作のパフォーマンスが向上することもあります。
複数レベルのパーティションでは、コンテキストは空でないパーティションの組み合わせに関連付けられます。以降の説明では、パーティションとはパーティションの組み合わせを意味します。
PPICacheThrPはまた、列パーティション値の列パーティションへの追加をバッファに格納するために割り当てることができるメモリ セグメントの数を計算するために使用する割合値も指定します。列パーティション コンテキストのサイズで割ったメモリ セグメントのサイズの合計(オーバーヘッドを引く)が、使用可能な列パーティション コンテキストの数を決定します。ターゲット テーブルに、使用可能な列パーティション コンテキストよりも多くの列パーティションが含まれる場合は、1つの列パーティション セットを処理するためにソース行を介した複数の受け渡しが必要です。ここで、各セットの列パーティションの数は、最大で使用可能な列パーティション コンテキストの数です。この場合、開いているファイル コンテキストは1つのみですが、各列パーティション コンテキストがメモリにバッファを割り当てることに注意してください。
パーティション キャッシュしきい値(PCT)
PCTは、パーティション化操作で使用可能にできるメモリの量です。
AMPあたりのファイル システム キャッシュが100 MB未満のシステムの場合。
AMPあたりのファイル システム キャッシュが100 MBを超えるシステムの場合。
PCT値はパーティション テーブルのさまざまな操作に用いられます。例えば、複数のパーティション コンテキストに関連づけられたデータ ブロックまたはAMPバッファで使用するメモリ量として使用し、一連の組み合わせパーティションの同時読み取り、あるいは書き込みを可能にします。
データ ブロック サイズは、コンテキストの数にも影響を与えます。データ ブロック サイズが小さいほどコンテキストの数も多くできるため、より多くのパーティションを一緒に処理できます。データ ブロック サイズが128 KB以下の場合、コンテキストは、PPICacheThrPの設定に関係なく最大で8つ使用できます。より大きいデータ ブロック サイズの場合、コンテキストの数が最小で2つまでに減少する場合があります。
コンテキストは、PPICacheThrPの設定に関係なく、256個までしか使用されません。
PPICacheThrPパフォーマンスへの影響
使用例の大半では、PPICacheThrPのデフォルト値は適切であるため、変更しないでください。ただし、この値を調整することでパフォーマンス上の問題が解決する可能性がある場合、このセクションに記載された情報を検討してください。
対応するパーティション(または列パーティション テーブルへの挿入の場合はバッファ)における現在のデータ ブロックは、それぞれのコンテキストに関連づけられています。同時にパーティションのセットを処理する場合のパフォーマンスを向上させるため、データ ブロックまたはバッファの現在のセット(コンテキストごとに1つ)は、可能な場合メモリに保存されています。メモリが不足している場合、これらのブロックまたはバッファをディスクにスワッピングする必要が生じることがあります。ただし、過度のスワッピングはシステムのパフォーマンスを低下させる可能性があります。
以下の場合は、値を大きくすると、パーティション化操作のパフォーマンスが向上することがあります。
- 各コンテキストのデータ ブロックまたはAMPバッファは、メモリに保存できます。メモリに保存できなくなり、ディスクにスワッピングする必要が生じると、パフォーマンスが低下することがあります。
- パーティション操作では、コンテキストの数は、空でなく除去されてもいないパーティションの数を超えることはありません。(超えた場合、各パーティションにコンテキストが設定されるためパフォーマンスが向上せず、追加のコンテキストが未使用になります)。
場合によっては、PPICacheThrPの値を初期値より大きくすると、これらのパーティション化操作を実行する各問合わせのパフォーマンスが向上することがあります。ただし、これらの問合わせが同時に多数実行される場合は、メモリ競合やメモリ不足が発生する可能性があることに注意してください。
デフォルト値の10は控えめな設定で、このようなメモリの問題を回避することを意図しています。デフォルト設定が10のシステムで、AMPあたり80 AMPワーカー タスク(AWT)があり、すべてのAMPが同時にパーティショニング操作(例えば、80の個別のリクエストに対するスライディングウィンドウの結合など)を実行している場合、これらのパーティショニング操作に使用できるFSGキャッシュの最大量はFSGキャッシュ メモリの80%です。最大値として80を超えるAWTが定義されている構成の場合、設定はAWTの数に合わせて調整されます。例えば、デフォルト設定の10の場合、AMPごとにFSGキャッシュ メモリの80%という上限がそのシステムで有効になります。
多くのサイトにとっては、このデフォルトは安定性を重視しすぎているかもしれません。80のAWTがすべて同時に実行されるパーティション化操作とは限りません。同時に発生すると予想されるパーティション化操作が多くても60である場合は、PPICacheThrPの値を15に上げることもできます。同様に、多くても40と予想される場合は、この値を20に上げることもできます。このパラメータの最適な値は、システムを同時に利用すると予想されるユーザーの最大数とそのワークロードによって決まります。あらゆるシステムに適した特定の値はありません。
また、スライディング ウィンドウ結合などの同時パーティション化操作の数が、パーティション使用率の上昇とともに増加する可能性があることも考慮してください。値を大きくすることで、現時点でメモリ競合やメモリ不足なしにパフォーマンスが向上したとしても、今後、同時に実行されるパーティション化操作が増えるにつれ、パフォーマンスが低下したり、メモリが不足する事態が発生したりする場合があります。
サイトで予想される同時パーティション化操作が80未満であり、PPICacheThrPの値を大きくすることでパフォーマンスが向上する可能性があると考えられる場合は、PPICacheThrPの複数の設定を試して、値を大きくしたPPICacheThrPの設定がサイトに最適で、ワークロードに関して安全であるかどうかを調べることができます。変更の影響を評価するために、予想される現在および将来のワークロードで、変更前と変更後のパフォーマンスやメモリ競合の程度を測定します。この値をサイトにとってほぼ安全な値に増やしても、スライディング ウィンドウ結合などのパーティション化操作のパフォーマンスが十分に改善されない場合は、スライディング ウィンドウ結合で使用されるパーティションが少なくなるように、より大きな粒度のパーティションを定義することを検討してください。
関連トピック
テーブルと結合インデックスの行および列のパーティション化など、パーティション化に関する詳細は、<Teradata Vantage™ データベース設計、B035-1094>および<Teradata Vantage™ SQLデータ定義言語-構文規則および例、B035-1144>を参照してください。