TPumpスクリプトの変数 - Parallel Data Pump

Teradata® Parallel Data Pumpリファレンス

Product
Parallel Data Pump
Release Number
17.10
Published
2021年6月
Language
日本語
Last Update
2021-09-23
dita:mapPath
ja-JP/oqw1608578437373.ditamap
dita:ditavalPath
ja-JP/oqw1608578437373.ditaval
dita:id
B035-3021
Product Category
Teradata Tools and Utilities

ほとんどの場合、スクリプトでTPump変数を設定する方法を選択できます。重要な変数は、PACK係数、セッション数、ARRAYSUPPORT(ONまたはOFF)、およびSERIALIZE(ONまたはOFF)です。

PACK Factor
PACK係数は、TPumpの主要なパフォーマンス イネーブラーの1つであり、各セッションのバッファが保持する行数を表します。バッファのサイズは約64KBです。デフォルト値のPACKは20です。一般に、高いパック係数は、通常、小さいパック係数よりも優れたパフォーマンスを得られます。テスト環境でPACKMAXIMUMを試して、TPumpに最大パックを決定させます。 最適なPACK係数値はUTY6652メッセージにあります。
SESSIONS
BEGIN LOADコマンドのこのオプションは、データをTeradata RDBMSに転送するセッションの最大数(およびオプションで最小数)をTPumpに通知します。
ARRAYSUPPORT

この機能は、TPumpおよびその他のSQLクライアントが単一の要求内のパラメータ値の複数のセットに対してパラメータ化されたDML文を反復するための改善された方法を提供する新しいデータ駆動型反復機能を提供します。 ARRAYSUPPORTは、要求ごとに送信できるデータの量を合計約64KBから合計約1MBに増やし、入力データ行ごとに64KBの制限を設けます。

SERIALIZE

BEGIN LOADコマンドのこのオプションを使用して、レコードの適用順序を確認したり、複数のSESSION間の行ハッシュロックの競合を減らしたりすることができます。 TPumpは、USEオプションに対するユーザーの選択に基づいて数値を計算します。結果の数値は、データ レコードを取得するセッションを決定するセッション数を減らします。 SERIALIZEは、同じ基本索引値を指定するすべての入力データ レコードが同じセッションでTeradata RDBMSに送信されるようにします。 TPumpの場合、ユーザーは、FIELDコマンドのKEYオプションを使用して、TPumpの基本索引の列を適切に識別する必要があります。

これらの変数は相関関係にあります。いくつかの推奨事項があります。

  • 一般的なTPumpスループットの推奨事項は、「最大にパックアップし、問題が発生するまでセッションアップ」です。AWT、CPU、またはハッシュの衝突の問題が発生した場合は、セッションを減らすか、SERIALIZE ONを使用してください。スループットの低下が特定のPACKのSESSIONS数が多い場合は、現在のセッション数から8または16でSESSIONSの数を減らします。
  • SERIALIZE ONでスループットを維持するためにSESSIONSを同じに保ちますが、PACKが低くなる可能性があります。低いパック係数を持つセッションが不足すると、行レートが遅くなりますが、ハッシュ競合の量と期間も減少します。中から大の行サイズの表の場合、パックを 15% 削減します。小さい行サイズの表のパックを25%減らします。これは、連続する入力データ レコードが同じ基本索引値を持つ場合に考慮されることがよくあります。同じセッションでハッシュ シノニムの数が多くて、PACK値が大きい場合は、スループットが低下します。
  • SERIALIZE ONと同じセッションに対して、同じ基本索引ハッシュを持つレコード。 セッション数が少ないデータの「塊」は、スループットを低下させる可能性があります。 データの「塊」は、入力データファイルが並べ替えられている場合や、連続する入力データレコードの基本索引値が同じである場合によく発生します。
  • 同じセッション フットプリントでパックを増やすと、1秒あたりのスループットが増加します。文をパックすると、アプリケーションとデータベースとの間の送受信の数が減少するので、ネットワーク/チャネルの効率が上がります。ただし、特定の内部制限に達すると、TPumpは自動的にPACK係数を減らします。 ユーザーは、SERIALIZEとのハッシュ競合、データエラー、または大きなPACKバッファがいっぱいになるために許容できない遅延が発生した場合に、PACKを下げることを検討できます。
  • SERIALIZE ONにすると、セッション数は奇数に維持する必要があります。これにより、入力データ レコードが割り当てられるセッションを決定するために使用される剰余演算のために、未使用のセッションを回避できます。
  • ARRAYSUPPORTを使用すると、スループットが向上します。 具体的には、TPumpは、ARRAYSUPPORTモードで可変長フィールドを持つ入力データの最適なPACK係数を動的に決定します。ユーザーはPACKMAXIMUMオプションを設定し、TPumpは要求ごとに要求に応じてバッファがいっぱいになるまで、その値を設定します。そうすることで、ステートメント キャッシュに問題が発生することはありません。PACK係数が高いほど、パフォーマンスが最も高いメリットを得るのはPA (パラメータ配列) です。同様に、NOPIの場合、TPumpはより高いPACK係数の恩恵を受けます。最適なPACK係数は、合計バイト数が1MBを超えないように制限されて確立されます。
  • ARRAYSUPPORTとその1MBバッファを備えた最も実用的なPACKを使用してみてください。 ARRAYSUPPORTを使用できない場合、バッファ サイズは64Kです。 目標は、適度に多数の行でバッファーをパックすることです。 1つのアプローチは、表のおおよその行サイズを計算し、そのバッファに収まる行数を決定してから、行サイズの変動と通信オーバーヘッドを考慮して行数を20%削減することです。