栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

WHERe-CASE子句子查询性能

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

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;


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/441486.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号