0

現在、Oracle クエリから最大 150,000 件以上のレコードを読み取り、それらをバー区切りの CSV にエクスポートするプロセスがあります。プロセスは毎日実行され、レコード数は実行ごとに増加します。

現在本番環境にデプロイしているコードは、実行に約 40 分以上かかります。ほとんどの時間は、OracleDataReader を DataTable にロードするために費やされます。そこから、DataTable がループされ、各フィールドが区切り記号付きの StringBuilder に追加され、StreamWriter を使用して行がファイルに書き込まれます。

それは機能し、その目的を果たしますが、実行に時間がかかりすぎます。

私はそれを少しいじって、これを行うための最良の方法をあちこち探しましたが、これ以上速く実行できるものはまだ見つかりません. 私が試した最も有望な代替手段は、DataReader をループして DataTable を除外することでしたが、それには約 30% 長くかかりました。

誰かが私を正しい方向に向けることができますか?

4

0 に答える 0