例 3: アンロードを高速化するために出力ファイルを分割する操作

以下の例では、アンロードするデータを分割し、3 つのディレクトリーにそれぞれ配置する 3 つの出力ファイルに各データを格納する方法を取り上げます。 それぞれのアンロードを同時に処理してパフォーマンスを改善します。 1 つは、OUTFILE 節でテンプレート・キーワードを使用する方法です。 もう 1 つは、OUTPUT 節を使用する方法です。

この例では、 Db2® インスタンス db2inst9と、それぞれが 3 つの論理データベース・パーティションを持つ 2 つのテスト・マシンを想定しています。
  • 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)
;