0

私のアプリケーションの基本的な概要は次のとおりです (SQlLite DB に接続します)。

  1. ディレクトリをスキャンして、読み取る必要がある 8 ~ 15 個の異なるフラット ファイルのリストを作成します。

  2. フラット ファイルを識別し、ファイル拡張子に基づいて一般的な準備済みステートメントを選択します。

  3. 次に、フラット ファイルを 1 行ずつ読み取り、文字列が設定された準備済みステートメントをバッチに追加します。バッチは、1,000 ステートメントごとに実行されます。問題のファイルの一部には、200,000 行を読み取る必要があります。

  4. すべてのファイルがデータベースに挿入されると (ファイルの種類ごとに異なるテーブルがあります)、プログラムは各テーブルの特定の列を共通の値に更新します。

  5. プログラムは、ファイルの種類ごとに新しいファイルを作成し、データベース内の情報を新しいファイルに抽出します。

現在、約 9 つの非常に小さなファイル (50 行未満) と 1 つの非常に大きなファイル (200,000 行以上) を含むディレクトリで 1 回実行すると、実行に約 1.5 分かかります。私はこれをより速くすることを望んでいます。

いくつかの最初の質問:

  1. プログラムの各部分 (読み込み、更新、抽出) のデータベース接続を閉じて開くか、接続を開いたままにして、それぞれの異なるメソッドに渡す必要があります。

  2. 各ファイルが処理された後、準備済みステートメントを閉じる必要がありますか? または、各ファイルの後にパラメーターをクリアし、メソッドの最後に閉じます (基本的にすべてのジョブが読み込まれた後)?

このアプリケーションのパフォーマンスを最大化するために私が注目すべきことについて、他のコメントに興味があります。

ありがとう。

4

1 に答える 1