0

.csv ファイルを読み取ってデータベース テーブルに格納するプログラムを Java で作成しました。しかし、保存操作のパフォーマンスは非常に遅いです。DB2 Command Line Processor を使用すると、パフォーマンスが劇的に変化し、非常に高速です。そのため、要件に応じて DB2 コマンド行プロセッサーをカスタマイズしようとしています。Google で検索しましたが、使い方のトピックしか見つかりませんでした。始める前に、次の主題について明確にしたいと思います。

  1. 「DB2 Command Line Processor」はオープンソースですか?
  2. どのプログラミング言語が使用されていますか?
  3. javaでオープンソースコードを使用したDB2コマンドラインプロセッサのような代替手段はありますか?
  4. Java プログラムから DB2 コマンド行プロセッサーを呼び出す方法はありますか?
4

2 に答える 2

1

Javaプログラムを調査する価値があるかもしれません。実行時間が遅いのは、データをコミットする頻度に関係している可能性があります(つまり、自動コミットモード(挿入ごとにコミットする)で実行している可能性があります)。

500挿入ごとにコミットする方が、レコードごとにコミットするよりもはるかに高速な場合があります。

自動コミットの詳細については、 DB2自動コミットを参照してください。

于 2013-01-21T07:08:22.360 に答える
0

1) DB2 CLP (コマンド行プロセッサー) は DB2 の一部です。これはオープン ソースではなく、すべてのエディション (Express-C、express、workgroup、extended)、および Data Server クライアントに含まれています。これは無料でダウンロードでき、すべてのクライアントにインストールできます。

2) DB2CLP の機能を使用する最良の方法は、bash スクリプトや Windows スクリプトなどのスクリプトを使用することです。Java アプリケーション (ランタイム) などの別のプログラムから db2clp を呼び出すこともできます。

3) オープン ソース ライセンスを持つデータベース用のシェルがありますが、2 つのものが混在しています。シェルは、通常、コマンドを入力する黒い画面です。そして、自分で開発したプログラムからデータベースにクエリを実行するためのドライバー。

4) ここでも、ランタイム経由でhttp://docs.oracle.com/javase/6/docs/api/java/lang/Runtime.html

最後に、多くの層を使用せずに、直接処理を行うために JDBC ドライバーを使用するのが最善の方法です。Java コードを確認する必要があります。おそらく読み取りが効率的ではありません。また、DB2 Java ドライバーのプロパティーも確認してください。

もう 1 つ、最大の結果が必要な場合は、LOAD を使用してデータベースにデータを挿入してみてください。ログは実行されません。Java アプリケーションから LOAD を呼び出すことができます (コマンドを実行する前に、忘れずに db2 環境をロードしてください)。

于 2013-01-21T20:20:48.473 に答える