WHERe-CASE子句子查询性能

WHERe-CASE子句子查询性能,第1张

WHERe-CASE子句子查询性能

我认为该解决方案在理论上可以帮助您提高性能,但是它也取决于标量函数的实际作用。我认为在这种情况下(我的猜测是将日期格式化为该季度的最后一天)确实可以忽略不计。

您可能需要阅读此页面,并附有建议的解决方法:

http://connect.microsoft.com/SQLServer/feedback/details/273443/the-scalar-
expression-function-would-speed-performance-while-keeping-the-benefits-of-
functions#

因为SQL Server必须在每一行上执行每个函数,所以使用任何函数都会产生游标,如性能下降。

在变通办法中,有一条评论指出

当我在连接列中使用标量UDF时,我遇到了同样的问题,其性能令人震惊。在我用包含UDF结果的临时表替换了UDF并将其用于join子句后,性能提高了几个数量级。MS团队应修复UDF以使其更可靠。

因此看来,是的,这可能会提高性能。

您的解决方案是正确的,但是我建议您考虑对SQL进行改进以使用ELSE,它对我来说看起来更干净:

AND ReportTypeID = CASE WHEN (@X = 1) THEN  1          ELSE 4         END;


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5144525.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存