gpt4 book ai didi

sql-server - 停止 SQL Server 在 WHERE 子句中评估无用的 UPPER/LOWER?

转载 作者:行者123 更新时间:2023-12-01 00:58:25 25 4
gpt4 key购买 nike

似乎尽管 SQL Server 在 WHERE 子句中不匹配大小写,但它仍然支持 WHERE 子句中的 UPPER/LOWER,这似乎非常昂贵。是否可以指示 SQL Server 忽略 WHERE 子句中的 UPPER/LOWER?

这似乎是一个毫无意义的问题,但能够为 Oracle 和 SQL Server 编写一个查询是非常好的。

谢谢,杰米

最佳答案

对您的问题的简短回答是否定的 - 您不能让 SQL 服务器神奇地忽略 WHERE 子句中的函数调用。

正如其他人所说,造成性能问题的原因是,在 SQL Server 上,在 WHERE 子句中使用函数会阻止使用索引并强制执行表扫描。

为了获得最佳性能,您需要维护两个查询,每个 RDBMS 平台一个(在您的应用程序中或在存储过程或 View 等数据库对象中)。鉴于 Oracle 和 SQL Server 在许多其他功能方面存在差异,您很可能最终还是要这样做,如果不是为了这个,也是为了别的。

关于sql-server - 停止 SQL Server 在 WHERE 子句中评估无用的 UPPER/LOWER?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3188067/

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