0

我有超过 100 万行要检查更改然后更新。我完成了遍历每条记录然后更新数据库的程序。但是这个操作需要几个小时才能完成多线程。我优化了查询、插入和检查以最小化数据库负载。我取得了更好的结果,但速度很慢。

有没有办法在内存中维护一个具有正确记录的 DataTable,然后一次更新将整个数据结构作为“虚拟表”上传到 SQL Server 并让 SQL Server 处理更新?

我过去见过类似的情况,它是通过 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

使用 Bulk Copy 将新数据插入临时表或使用表值参数 (TVP),然后使用 SQLMERGE命令更新现有表中的行。

于 2012-12-07T07:25:36.190 回答