我有超过100万行我检查更改然后更新。 我完成了遍历每条记录的程序,然后更新了数据库。但是这个操作需要几个小时来完成多线程。我已经优化了查询,插入和检查以最小化数据库负载。我取得了更好的成绩,但速度很慢。
有没有办法在内存中维护具有正确记录的DataTable,然后在一次更新中将整个数据结构作为“虚拟表”上传到SQL Server,让SQL服务器处理更新?
我在过去看过类似的东西,它是通过Posrgre服务器上的函数完成的(不涉及C#)。我需要我的程序在几分钟内完成,而不是几个小时。
答案 0 :(得分:2)
你看过SqlBulkCopy类吗?
System.Data.SqlClient.SqlBulkCopy
http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlbulkcopy.aspx
答案 1 :(得分:2)
使用批量复制将新数据插入临时表或使用表值参数(TVP),然后使用SQL MERGE
命令更新现有表中的行。