例 3: アンロードを高速化するために出力ファイルを分割する操作
以下の例では、アンロードするデータを分割し、3 つのディレクトリーにそれぞれ配置する 3 つの出力ファイルに各データを格納する方法を取り上げます。 それぞれのアンロードを同時に処理してパフォーマンスを改善します。 1 つは、OUTFILE 節でテンプレート・キーワードを使用する方法です。 もう 1 つは、OUTPUT 節を使用する方法です。
- M1 (データベース・パーティション 1、10、100)
- M2 (データベース・パーティション 2、20、200)
テンプレート・キーワードを使用した OUTFILE 節を記述する方法
以下の制御ファイルでテンプレート・キーワード %{listValDir,1,2,3} を使用してデータをアンロードできます。
GLOBAL CONNECT TO SAMPLE DB2 NO;
UNLOAD TABLESPACE
SELECT * FROM "DB2INST9"."EMPLOYEE";
FORMAT DEL
OUTFILE ("/home/db2inst9/dir%{listValDir,1,2,3}/new.out" REPLACE)Optim™ High Performance Unload は、 {listValDir,1,2,3} キーワードを解析して、現在のホスト上の3つの異なるディレクトリー、 dir1、 dir2、 /home/db2inst9/ ディレクトリー内の dir3 を見つける。 次に、 Optim High Performance Unload ディレクトリごとに、アンロードされたデータの一部を含む new.out 出力ファイルが1つ作成されます。テンプレート・キーワードを使用しない OUTPUT 節を記述する方法
テンプレート・キーワードを使用しない OUTPUT 節でも同じ出力を生成できますが、出力ディレクトリーを明示的に指定しなければならないので、OUTPUT 節は詳細で複雑な構文になります。
GLOBAL CONNECT TO SAMPLE DB2 NO;
UNLOAD TABLESPACE
SELECT * FROM "DB2INST9"."EMPLOYEE";
FORMAT DEL
OUTPUT (("/home/db2inst9/dir1",
"/home/db2inst9/dir2",
"/home/db2inst9/dir3"
)"old.out" REPLACE)
;