使用Mars来更新7000行是否有效?

Luk*_*101 3 c# sql sql-server-2005 sql-server-mars

我有一项使用MARS更新/插入7000多行的服务.有一个更好的方法吗?

Mar*_*ell 6

如果你经常这样做,那么对于这个卷,我会SqlBulkCopy用来将数据推送到一个临时表(与目标表相同的模式,但是是隔离的),然后使用存储过程来执行插入/更新(来自staging table into the actual table) - 可能包含在一个事务中.

这将最小化往返次数,并使用批量插入API来推送数据.

如果您不需要一批中的所有内容,则另一种选择是以(例如)100条记录的块处理数据; 这应该工作,而不会导致事务花费长时间 - 它将明显慢于批量复制方法,但具有基于对象的优点,并且不要求您使用额外的工具/语言集.