sql - 合并与更新插入

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

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

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

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

最佳答案

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

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

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

关于sql - 合并与更新插入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2492750/

相关文章:

SQL Server 2000 : weird error: cannot convert VARCHAR to INT

mysql - 查询两方之间的消息,但对删除的用户隐藏消息

mysql - 按类别中项目的下载次数对类别进行排序

php - 使用第一个查询的结果的查询中的第二个查询

mysql - 尝试绑定(bind)参数号 0。SQL Server 最多支持 2100 个参数

SQL 当前月/年问题

sql-server - SQL - 审计日志表设计 - 你更喜欢哪个?

java - 无法连接到sql server 2008实例

SQL Server : select distinct mon-yyyy format output sorty by descending order

SQL Server 数据库大小 - 为什么这么大?