Informix DB のテーブルに巨大なファイルをロードしたかったのですが、時間がかかりすぎました。以前は、次のコマンドを使用していました。
LOAD FROM <file> delimiter "|" INSERT INTO <tablename>
いくつかの調査の後、IBM サイトで外部テーブルの概念を読みました。
LOAD
簡単なコマンドとEXTERNAL
テーブルを使用してデータを DB にロードすることの違いは何ですか?
2つの間にパフォーマンスの違いはありますか?
Informix DB のテーブルに巨大なファイルをロードしたかったのですが、時間がかかりすぎました。以前は、次のコマンドを使用していました。
LOAD FROM <file> delimiter "|" INSERT INTO <tablename>
いくつかの調査の後、IBM サイトで外部テーブルの概念を読みました。
LOAD
簡単なコマンドとEXTERNAL
テーブルを使用してデータを DB にロードすることの違いは何ですか?
2つの間にパフォーマンスの違いはありますか?
その違いは、パフォーマンスだけでなく、巨大です。LOAD は通常の SQL レイヤーを通過し、単純な INSERT と比較できます (いくつかの最適化が行われています)。また、サーバーと通信してメッセージを交換する必要があるクライアント側の「作業」でもあります。
外部表は大きく異なります。使用するモード (エクスプレスが最速) に応じて、プロセスはデータ ページを作成し、SQL レイヤーを完全にバイパスします。もちろん制限はありますが、一括読み込みの場合は大きな違いが生じる可能性があります。また、外部テーブルでは、ロードを行うのはエンジン自体です。以前の「高速」な方法 (High Performance Loader — HPL と呼ばれるツール) では、クライアント側のプロセスがありましたが、全体的な概念は似ていました。