MERGE与UPSERT

时间:2010-03-22 14:00:11

标签: sql sql-server sql-server-2008 tsql sql-merge

我有一个应用程序,我正在使用SQL服务器后端进行访问。最常用的部分之一是用户选择问题的答案,然后触发存储过程,查看是否已经给出答案,是否执行了UPDATE,如果没有执行INSERT。 / p>

这很好用,但现在我们升级到SQL Server 2008 express我想知道重写这个SP以使用新的MERGE命令会更好/更快/更有效。

有没有人知道这是否比执行SELECT后跟INSERT或UPDATE更快?

1 个答案:

答案 0 :(得分:5)

不值得努力。可能是可行的,但它不会给你任何明显的东西。

MERGE特别针对数据仓库,其中找出插入/更新的内容是棘手的部分。它允许所有操作(插入,更新)使用一组合并完成,而每个条件使用一个合并。这对你的情况没有什么不同。

我有一个数据库,我将300万行上传到3亿行表中 - 合并使我的性能提高了50%(一次扫描而不是两次)。