DB2に他のシステムからのデータの移入を行う場合、LOADとIMPORTという2つの方法がある。
LOADコマンドは、コマンドが直接データイメージを作成して表スペースに挿入していくのに対し、IMPORTコマンドはINSERTコマンドをデータベースに対して発行する。このため、データがある程度より多くなると、LOADコマンドのほうがはるかに高速(通常数十倍)になる。また、LOADコマンドは、索引の作成や統計の収集を同時・高速に行うことが出来る。
LOADコマンドは、以下の3つのフェーズを順に実行する。
LOADコマンドがサポートするファイル形式は、IXF(DB2の独自形式)・デリミタ・固定長の三種類である。
回復処理に関連する主なパラメータは以下の通り
パフォーマンスチューニングに関連する主なパラメータは以下の通り
LOADコマンドのロード・フェイズでは、制約検査はオフにされる。ロード・データが適切なデータタイプで無い場合には、その行はインポートされず、指定したメッセージファイルにその旨が書き出される。しかしながら、「固有キー制約違反」「参照制約違反」「不正なロード再試行によるデータ重複」による行のエラーについては、以下のような処理が行われる。
EXPORTコマンドは、SELECT文の問い合わせ結果を元にデータを書き出す。サポートするファイル形式は、IXF・デリミタに加え、WSPフォーマットの3形式である(固定長テキストはサポートしない)。使用できる主なパラメータは以下の通り:
IMPORTコマンドは、外部テーブルの各行をINSERT文でテーブル等に挿入していく。SELECT文の問い合わせ結果を元にデータを書き出す。サポートするファイル形式は、IXF・デリミタ・固定長・WSPフォーマットの4形式である。使用できる主なパラメータは以下の通り:
LOADとIMPORTの相違点は以下のようなものである。
IMPORT | LOAD |
---|---|
低速(少量データの場合にはオーバーヘッドがない分高速になることも) | 高速 |
存在しない表・索引の作成が可能(IXF形式の場合) | 表・索引は事前に存在が必要 |
WSF形式をサポート | IXF・デリミタ・固定長のみ |
ビューへのインポートが可能 | 表・エイリアスのみ |
挿入はロギングされる | 作業はほとんどロギングされない |
トリガが起動される | トリガは起動されない |
作業が中断してもそのまま処理が可能 | 作業が中断すると表領域の回復が必要 |
SMPをサポートしない | SMPをサポートする |
全ての制約性チェックを行う | 制約性チェックは行わない |
索引作成・統計情報収集は別途行うべき | 索引作成・統計情報収集を同時・高速に行うことが出来る |