0

データベースに挿入したいレコードが約 1,000,000 件以上あります。

同じ ID を持つレコードは更新する必要があり、それ以外の場合は挿入されます

更新/挿入ロジックは Stored Proc に記述されています

この作業を行うために DataAdapter.Update メソッドを使用しています。

これが問題です。

DataTable は 65,000 レコードを超えません。

挿入/更新は、1 秒あたりわずか 60 レコードです。

このパフォーマンスを向上させるにはどうすればよいですか?ここで SqlBulkCopy を使用できますか?この Update/Insert を一緒に実行できますか? その中でのパフォーマンスはどうなるでしょうか

4

1 に答える 1

0

挿入更新のためだけにレコードを DataTable にロードしていますか?

その場合は、SP を一度に 1 つずつ直接呼び出して、DataTable をスキップする方がよいでしょう。

または、TVP と IEnumerable SqlDataRecord を使用すると、65000 に制限されなくなります。

IEnumerable SqlDataRecord の使用例

于 2012-09-19T17:09:16.540 に答える