首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MERGE vs TRUNCATE and INSERT

MERGE vs TRUNCATE and INSERT
EN

Stack Overflow用户
提问于 2012-11-15 14:51:28
回答 2查看 5K关注 0票数 9

我最近升级到了MSSQL2008Merge,我想知道在每个表都有数百万行的情况下,“新的”合并函数是否比截断和插入更新表更有效/更快。如果有人能提供一些性能数据,那就太好了,但任何解释都会有帮助!

EN

回答 2

Stack Overflow用户

发布于 2012-11-15 15:03:54

我不确定我是否正确理解了您对TRUNCATEINSERT的观点。如果没有,请随时纠正我。

MERGE是一种机制,用于对现有行执行UPDATE,或者在未找到现有行的情况下执行INSERT

您建议使用TRUNCATEINSERT,这将删除MERGE的使用,因为所有内容都是插入的。我不知道在这种情况下MERGE是否会更快,因为我从未尝试过,但我假设MERGE中决定使用UPDATE还是INSERT的那部分确实会带来一些开销。

票数 2
EN

Stack Overflow用户

发布于 2012-11-15 16:06:31

我使用MERGE是因为我需要跟踪数据更改(保存行的校验和),但是由于每次我看不出使用MERGE有什么特别的理由,您似乎只需要“克隆”数据,毕竟MERGE会进行某种检查(对主键进行检查,并在每个WHEN上添加附加条件);通过使用TRUNCATE和批量INSERT,您不应该使用所有这些条件

顺便说一句,不要认为这是100%正确的,我没有任何性能测试可以作为证据;我建议您尝试这两个操作,看看哪一个需要更多时间=)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13392743

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档