DB2 V11で確認しています。
DB2において固定長、または可変長のテキストファイルをデータベースにインポートするユーティリティとしてingestがあります。
このingestにおいてトランザクションを制御する場合は下記パラメータにて制御を行います・
・commit_period – コミット期間構成パラメーター
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.1.0/com.ibm.db2.luw.admin.config.doc/doc/r0057227.html
・commit_count – コミット・カウント構成パラメーター
https://www.ibm.com/support/knowledgecenter/ja/SSEPGG_11.1.0/com.ibm.db2.luw.admin.config.doc/doc/r0057226.html
DB2 V111においてはデフォルトでは commit_period が1秒、commit_count が 0 (利用しない) に設定されており、処理される行数にかかわらず1秒おきにコミットされます。
例えば500 行以下のファイルを INGEST でインポートし、これを単一のトランザクションとして扱う場合、commit_period=0 (利用しない) 、commit_count =1000 を指定します。commit_period を「1」のままcommit_count =1000を指定すると、1000 行処理するのに 1秒以上かかった場合、途中の行でコミットされます。なお、commit_count は 1000 の倍数の数値を受け入れます。
00 行以下のファイルを INGEST でインポートし、これを単一のトランザクションとして扱う例
db2 ingest set commit_count 1000
db2 ingest set commit_period 0
db2 ingest from file ファイル名 FORMAT DELIMITED
(
$emp_id CHAR(4),
$emp_name CHAR(16)
)
MERGE INTO テーブル名
ON emp_id = $emp_id
WHEN MATCHED THEN
UPDATE SET emp_name = $emp_name
WHEN NOT MATCHED THEN
INSERT VALUES($emp_id, $emp_name)