我最近升级到 MSSQL 2008 R2 并且想知道“新”合并功能是否比截断和插入更新表更有效/更快,因为每个表都有数百万行。如果有人能提供一些他们的表现数据,那就太好了,但任何解释都会有所帮助!
问问题
5175 次
2 回答
1
不确定我是否正确理解了您TRUNCATE
的观点。INSERT
如果没有,请随时纠正我。
MERGE
是一种机制,可以UPDATE
对现有行执行操作,或者在未找到现有行的情况下执行INSERT
.
您建议TRUNCATE
and INSERT
,这将删除 MERGE 的使用,因为一切都是 INSERT。我不知道MERGE
在这种情况下 a 是否会更快,因为我从未尝试过,但我会假设MERGE
决定是否使用 aUPDATE
或INSERT
确实会产生一些开销的部分。
于 2012-11-15T07:03:53.690 回答
1
我之所以使用MERGE
是因为我需要跟踪数据更改(保持行的校验和),但是因为似乎每次我看不到任何特定的使用理由时您只需要“克隆”该数据MERGE
,毕竟MERGE
做了某种检查(对主键进行检查,并在 each 上添加附加条件WHEN
);通过使用TRUNCATE
然后大量使用,INSERT
您不应该拥有所有这些条件
顺便说一句,不要把这当作 100% 正确,我没有任何性能测试可以作为证明;我建议你尝试这两种操作,看看哪一种需要更多时间 =)
于 2012-11-15T08:06:31.490 回答