c# – 插入或更新方案中的SQL Server批量插入/更新与MERGE

我需要找到使用sql server和asp.net在数据库中插入或更新数据的最佳方法.如果数据存在则是标准方案,如果没有插入则更新.我知道这里有很多话题,但没有人回答我需要知道的事情.

所以我的问题是,当您更新/插入5k – 10k行时,确实没有问题,但是50k及更多行.

我的第一个想法是使用sql server 2008 MERGE命令,但如果它是50k行我有一些性能考虑.另外,我不知道我是否可以基于主id键(int)而不是基于表中的其他唯一键来以这种方式输入数据. (确切地说,产品序列号不会随时间变化).

我的第二个想法是先获取所有产品系列,然后将新数据序列与之比较,并将其划分为数据以插入和更新数据,然后只进行一次批量插入和一次批量更新.

我只是不知道哪个更好,用MERGE我不知道性能是什么,只有sql server 2008支持它,但它看起来很简单,第二个选项不需要sql 2008,批量应该很快,但首先选择所有连续出版物并根据它们进行划分可能会有一些性能损失.

你有什么看法,选择什么?

最佳答案
更好地合并性能方式因为“MERGE语句最重要的优点之一是所有数据只被读取和处理一次”

您不需要主键,您可以加入一个或多个字段,使您的记录与众不同

转载注明原文:c# – 插入或更新方案中的SQL Server批量插入/更新与MERGE - 代码日志