gpt4 book ai didi

tsql - 在 TSQL 中,SUM(A + B) 与 SUM(A) + SUM(B) 之间是否存在性能差异?

转载 作者:行者123 更新时间:2023-12-04 05:24:12 28 4
gpt4 key购买 nike

我必须对 2 个字段求和,然后再求和。从性能的角度来看,先添加字段还是在对列求和之后添加字段有什么区别?
方法 1 = SELECT SUM(columnA + columnB)
方法 2 = SELECT SUM(columnA) + SUM(columnB)
(环境 = SQL Server 2008 R2)

最佳答案

我已经检查过了,我看到的是 sum(x) + sum(y)更快。
为什么?当您使用 sum 函数时,您正在使用聚合函数。聚合时,将跳过空值。当您在聚合函数中组合两个字段时,处理器必须检查其中一个字段是否为 NULL,因为一个集合可以包含一个值和一个 NULL。将 NULL(或 UNKNOWN 或 NOTHING,如果你喜欢)添加到某物,仍然是什么,所以 NULL。因此,对于每条记录,都必须进行检查。

当您查看执行计划并检查计算机标量运算符时,您将确切地看到这种行为。
对于 sum(x) + sum(y)方法您会看到估计的 cpu 成本为 0,0000001,而另一种方法最多需要 0,0000041。那是更多的东西!
此外,当您仔细观察时,您会发现 sum(x + y)将被制作成类似的东西[Expr1004] = Scalar Operator(CASE WHEN [Expr1006]=(0) THEN NULL ELSE [Expr1007] END)
所以,最终,sum(x) + sum(y)可以考虑更快。

关于tsql - 在 TSQL 中,SUM(A + B) 与 SUM(A) + SUM(B) 之间是否存在性能差异?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13390030/

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