我正在使用 SQL Server 后端编写一个应用程序。最常用的部分之一是用户选择问题的答案,然后触发一个存储过程,查看是否已经给出答案,如果有则执行更新,如果没有则执行插入。
这工作得很好,但现在我们已经升级到 SQL Server 2008 Express 我想知道重写此 SP 以使用新的 MERGE 命令是否会更好/更快/更高效。
有人知道这是否比先执行 SELECT 后执行 INSERT 或 UPDATE 更快吗?
最佳答案
不值得付出努力。可能是可行的,但它不会给你任何值得注意的东西。
MERGE 特别针对数据仓库,其中找出要插入/更新的内容是棘手的部分。它允许使用一组合并来完成所有操作(插入、更新),而不是针对每个条件执行一个合并。这对您的情况没有真正的影响。
我有一个数据库,我将 3-5 百万行上传到一个 3 亿行的表中 - 合并将我的性能提高了 50%(一次表扫描而不是两次)。
关于sql - 合并与更新插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492750/