シナリオ - データベースに膨大なデータがあります。ユーティリティはdatareaderを使用してレコードを1つずつ読み込み、txt/xmlファイルに追加します。もともと1つのレコードを読み取ってファイルに書き出すためのユーティリティー。それから、私はそれを変更して約10kのレコードを読み込んでメモリ(stringbuilder)に入れてからファイルに書き出しました。時間の短縮はすばらしかったです。DBからの読み取りとファイルへの書き込み
ファイルI/Oがボトルネックだと思います。私はさらにそれを改善したい。何らかの種類のバッファを使用し、DBから読み込んでバッファに入れるために1つのスレッドを使用し、バッファからフェッチしてFileに書き込む別のスレッドを使用することを考えます。
可能ですか?どこから始めれば? もっと良い選択肢はありますか?
まず、データをどのくらい早く読み取ることができますか、そしてデータをどのくらい速く書き込むことができますか?あなたの現在のスループットは? – Arafangion
約400万レコード - 1レコードを読む、ファイルに書き込む(6時間を取る)、10kレコードを読む、ファイルに書き込む(1時間40分)、20kレコードを読む、ファイルに書き込むmin 50s) – EagerToLearn
レコードの2倍の読み込み速度が大幅に遅くなりました。そこには大きなセットアップコストが必要です。 – Arafangion