sql server 2008中"Merge"子句的性能如何?

zs2*_*020 10 sql-server-2008

Merge可以根据与源表的连接结果对目标表执行插入,更新或删除操作.例如,您可以根据在另一个表中找到的差异,通过在一个表中插入,更新或删除行来同步两个表.

是否有人熟悉性能使用"合并"与传统逻辑来检查存在并决定更新或插入呢?

谢谢!

wom*_*omp 8

MERGE通常更快,因为DML操作较少,而且它也是文档中推荐的方法.使用"传统"方式,您将对表进行两次处理 - 一次检查是否存在以及一次执行DML.使用MERGE,一切都用一个操作封装 - 因此发出一组锁,一组记录等.等等.

但是,对于您的查询实际执行的操作,这是非常主观的.您应该看看在MSDN 上优化MERGE语句性能.