ダンプ・ファイルは、記述されるすべてのデータを保持できるサイズのディスクに格納する必要があります。すべてのデータを保持できない容量の場合、CREATE
TABLE
AS
SELECT
文に対してエラーが返されます。この問題を軽減するには、CREATE
TABLE
AS
SELECT
文の実行時に複数のディレクトリ・オブジェクトを作成するという方法があります。ただし、これらのディレクトリは、異なるディスクに存在する必要があります。LOCATION
句でdirectory:file
形式を使用して複数の位置を指定し、PARALLEL
句を指定することで複数のファイルを作成できます。外部表を移入するために作成された各パラレルI/Oサーバー・プロセスでは、固有のファイルに書込みを実行します。各I/Oサーバー・プロセスには固有のファイルが必要であるため、LOCATION
句のファイル数と並列度が一致している必要があります。余分なファイルを指定した場合は、すべて無視されます。指定された並列度に対して必要数のファイルが存在しない場合、LOCATION
句のファイル数と一致するよう並列度が下げられます。
inventories
表の3つのファイルへのアンロードの例を次に示します。
SQL> CREATE TABLE inventories_XT_3 2 ORGANIZATION EXTERNAL 3 ( 4 TYPE ORACLE_DATAPUMP 5 DEFAULT DIRECTORY def_dir1 6 LOCATION ('inv_xt1.dmp', 'inv_xt2.dmp', 'inv_xt3.dmp') 7 ) 8 PARALLEL 3 9 AS SELECT * FROM oe.inventories; Table created.
ORACLE_DATAPUMP
アクセス・ドライバを使用してデータをロードする場合は、パラレル処理で、複数のダンプ・ファイルや同じダンプ・ファイルのチャンクも同時に読み取ることができます。したがって、ファイルが複数のファイル・オフセットを含むことができる大きさであれば、ダンプ・ファイルが1つであっても、データをパラレルでロードできます。ORACLE_DATAPUMP
外部表から読み込む場合、並列度はLOCATION
句のファイル数に関連付けられません。