0

100万を超える行があり、変更を確認してから更新します。各レコードを調べてデータベースを更新するプログラムを完了しました。ただし、この操作はマルチスレッドで完了するのに数時間かかります。データベースの負荷を最小限に抑えるために、クエリ、挿入、チェックを最適化しました。私ははるかに良い結果を達成しましたが、それは非常に遅いです。

メモリ内に正しいレコードを含むDataTableを維持し、データ構造全体を「仮想テーブル」として1回の更新でSQLサーバーにアップロードし、SQLサーバーに更新を処理させる方法はありますか?

私は過去に同様のことを見てきましたが、それはPosrgreサーバーの関数を介して行われました(C#を使用せずに)。プログラムを数時間ではなく、数分で完了する必要があります。

4

2 に答える 2

2

SqlBulkCopyクラスを見たことがありますか?

System.Data.SqlClient.SqlBulkCopy 

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx

于 2012-12-07T01:45:10.483 に答える
2

一括コピーを使用して一時テーブルに新しいデータを挿入するか、テーブル値パラメーター(TVP)を使用してから、SQLMERGEコマンドを使用して既存のテーブルの行を更新します。

于 2012-12-07T07:25:36.190 に答える