0

ODBCDataReader を使用してデータベースからデータを読み取るアプリケーションがあります。このODBCDataReader rdr = com.ExecuteReader()行は非常に高速に実行されますが、rdr.Read() の最初の繰り返しの処理には非常に長い (15 秒以上) かかります。連続する各反復はかなり高速です (1 秒未満)。

返される行は比較的少ない (100 未満) ですが、各行には約 170 列あります。

これが .Read() コマンドの最初のパスでのみ発生する理由について混乱しています。基本的に、あるデータベースから別のデータベースにデータを移植し、データ リーダーから返された各レコードに対して挿入クエリを作成します。datareader が最初に読み取るときに、舞台裏で何かが行われていますか?この問題を回避する方法はありますか? このインポートには 1 ~ 2 分しかかからないはずですが、この問題のために何時間もかかっています。関連するコードは次のとおりですが、この問題のトラブルシューティングには役立たない可能性があります。

    OdbcDataReader odbcRdr = odbcCom.ExecuteReader();
    while (odbcRdr.Read())
    {
         //Process the record and insert into the new database.
    }

前述したように、odbcRdr.Read() の最初の反復を過ぎると、コードは飛んで、1 秒もかからずにすべてのレコードを挿入します。

4

0 に答える 0