gpt4 book ai didi

sql - TSQL 合并如何工作?针对 UPDATE 和 INSERT 的性能

转载 作者:行者123 更新时间:2023-12-04 20:56:26 25 4
gpt4 key购买 nike

有人可以帮助我了解 TSQL 合并的实际工作原理吗?并帮助我了解 UPDATE/INSERT 何时会更快以及 MERGE 何时会更快?

我知道这是一个非常模糊的问题,与我正在处理的某个特定案例无关。希望 StackOverflow 允许这样做。

如果你能给我相关的链接也可以。谢谢。

感谢您指点我: SQL Server : MERGE performance但我觉得这与索引更相关,然后合并,因此我的问题不是这个的重复。

最佳答案

合并实现对源和目标执行完全外部连接。根据您指定的副作用子句,这可以简化为更简单的联接,例如左联接或内联接。

从连接结果中,有计算标量运算符计算应该发生什么 Action 以及将使用什么值。此结果将流式传输到执行写入的运算符。

这非常简单。如果您只指定一个副作用子句,则与普通 DML 的区别几乎为零。这表明合并没有固有的性能劣势。

事实上,它的优势在于它只需要传递一次数据。通常,合并比执行相同操作的多个语句更快。

  • 优化器可以同时查看所有 DML
  • 一次传递数据而不是每个语句一次
  • 所有索引写入都按索引键排序。最好做一次而不是多次
  • 每个语句的开销只有一次

如果您以无法从这些点中获益的方式使用合并,它可能会使用更多的 CPU。

性能实际上取决于模式、合并的形状和数据。我可以为您构建合并速度稍慢和速度明显更快的情况。

关于sql - TSQL 合并如何工作?针对 UPDATE 和 INSERT 的性能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134015/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com