この記事ではData Pumpにおけるデータの移動方法について解説します。
Data Pumpのデータ移動方法
Data Pumpによるデータの移動方法にはダイレクトパスを使用した方法と外部表を使用した方法があります。
ダイレクトパスを使用したほうが外部表を使用した方法よりも高速でデータ移動ができます。
Data Pumpではダイレクトパスを使用できる場合は、自動的にダイレクトパスを使用します。
ダイレクトパスが使用できない場合は外部表を使用した方法が選択されます。
方法の選択はexportとimportでそれぞれ選択されるため、exportとimportで異なる方法が選択される場合もあります。
ダイレクトパスによるデータ移動
従来のSQL文を使用してデータを抽出、挿入する方法に対して、ダイレクトパスによる移動ではデータファイルに直接データを読み書きします。
そのため従来の方法に比べて高速にデータの移動が可能になります。
ダイレクトパスによるデータ移動を使用するためには多くの条件があり、それを満たしていない場合は外部表が使用されます。
下記のようなケースではダイレクトパスは使用できません。
・表に暗号化された列がある。
・表にBFILE列または不透明な型の列が存在する。
外部表によるデータ移動
ダイレクトパスが使用できない場合に外部表を使用した方法が使用されます。
ダンプファイルに外部表を作成し、データを移動します。
移動方法の確認方法
ダイレクトパスと外部表のどちらが使用されているかは、ログファイルを見ることで確認できます。
19c以降ではexpdp/impdpのコマンドオプションに「metrics=yes」をつけることでログにデータの移動方法が記載されるようになります。