合并与更新插入

问题描述 投票:0回答:2

我正在使用 SQL Server 后端编写一个应用程序。最常用的部分之一是用户选择问题的答案,然后触发一个存储过程,查看是否已经给出答案,如果有则执行更新,如果没有则执行插入。

这工作得很好,但现在我们已经升级到 SQL Server 2008 Express 我想知道重写此 SP 以使用新的 MERGE 命令是否会更好/更快/更高效。

有谁知道这是否比执行 SELECT 和 INSERT 或 UPDATE 更快?

sql sql-server sql-server-2008 t-sql sql-merge
2个回答
5
投票

不值得付出努力。可能是可行的,但它不会给你任何值得注意的东西。

MERGE 特别针对数据仓库,其中找出要插入/更新的内容是棘手的部分。它允许使用一组合并来完成所有操作(插入、更新),而不是针对每个条件执行一个合并。这对您的情况没有真正的影响。

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


0
投票

啊,但事实并非如此!查看此链接:https://www.sqlshack.com/understanding-the-sql-merge-statement/

© www.soinside.com 2019 - 2024. All rights reserved.