私のアプリケーションの基本的な概要は次のとおりです (SQlLite DB に接続します)。
ディレクトリをスキャンして、読み取る必要がある 8 ~ 15 個の異なるフラット ファイルのリストを作成します。
フラット ファイルを識別し、ファイル拡張子に基づいて一般的な準備済みステートメントを選択します。
次に、フラット ファイルを 1 行ずつ読み取り、文字列が設定された準備済みステートメントをバッチに追加します。バッチは、1,000 ステートメントごとに実行されます。問題のファイルの一部には、200,000 行を読み取る必要があります。
すべてのファイルがデータベースに挿入されると (ファイルの種類ごとに異なるテーブルがあります)、プログラムは各テーブルの特定の列を共通の値に更新します。
プログラムは、ファイルの種類ごとに新しいファイルを作成し、データベース内の情報を新しいファイルに抽出します。
現在、約 9 つの非常に小さなファイル (50 行未満) と 1 つの非常に大きなファイル (200,000 行以上) を含むディレクトリで 1 回実行すると、実行に約 1.5 分かかります。私はこれをより速くすることを望んでいます。
いくつかの最初の質問:
プログラムの各部分 (読み込み、更新、抽出) のデータベース接続を閉じて開くか、接続を開いたままにして、それぞれの異なるメソッドに渡す必要があります。
各ファイルが処理された後、準備済みステートメントを閉じる必要がありますか? または、各ファイルの後にパラメーターをクリアし、メソッドの最後に閉じます (基本的にすべてのジョブが読み込まれた後)?
このアプリケーションのパフォーマンスを最大化するために私が注目すべきことについて、他のコメントに興味があります。
ありがとう。