web-dev-qa-db-ja.com

Oracleデータポンプインポートの並列構成

Oracle impdp処理の違いの原因を追跡しようとしていますが、何も見つかりません。そのため、違いの原因を説明できる人がいるかどうか疑問に思っています。

Oracleデータポンプでparallel = xパラメータを使用すると、複数のテーブルが一度に挿入されて最大値「x」になる場合や、並列スレッドを使用して単一のテーブルをインポートする場合があります。

パフォーマンスの違いを引き起こしている原因を突き止めることができなかったので、誰かに説明があるのか​​、それとも私に指摘する方向があるのか​​と思います。それが特定の問題で実行される理由を判断することは役に立ちます。

たとえば、現在、コマンドでparallel = 8で開始された単一テーブルdata_only importを監視していますが、インポートジョブは、次の挿入クエリのヒントに示すように、単一スレッドのみを使用してインポートを実行しています/- + PARALLEL( "XXXXX"、1)+ /。プロセスが指定された最大8つのスレッドを使用する場合、はるかに速く実行する必要があります。

1
Patrick

2つの一般的な理由:

  1. 各ワーカースレッドは個別のダンプファイルを使用し、それへの排他的アクセスを必要とします。指定した並列度よりもダンプファイルが少ない場合、並列スレッドは完全には利用されません。単一のダンプファイルがある場合、アクティブにできるワーカースレッドは1つだけです。

  2. Basicfile LOB列を含むテーブルは、並行してエクスポートまたはインポートされません。これは既知の制限であり、次のドキュメントに記載されています。 LOBのDataPumpエクスポート/インポートが並行して実行されない(Doc ID 1467662.1)

回避策は次のとおりです。

  • 別々のパーティションを並行してインポートできます
  • 複数のデータポンプジョブを開始し、QUERYparameterを使用してそれらの間でデータを分散します。
1
Balazs Papp