gpt4 book ai didi

sql-server - 是什么使得 SQL 语句可控制?

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

根据定义(至少从我所看到的),可优化意味着查询能够让查询引擎优化查询使用的执行计划。我尝试查找答案,但似乎没有太多关于该主题的内容。所以问题是,什么使 SQL 查询可控制?任何文档将不胜感激。

引用:Sargable

最佳答案

使查询不可控制的最常见方法是在 where 子句的函数内包含一个字段:

SELECT ... FROM ...
WHERE Year(myDate) = 2008

SQL 优化器无法使用 myDate 上的索引,即使存在索引。从字面上看,它必须为表的每一行评估这个函数。更好用:

WHERE myDate >= '01-01-2008' AND myDate < '01-01-2009'

其他一些例子:

Bad: Select ... WHERE isNull(FullName,'Ed Jones') = 'Ed Jones'
Fixed: Select ... WHERE ((FullName = 'Ed Jones') OR (FullName IS NULL))

Bad: Select ... WHERE SUBSTRING(DealerName,4) = 'Ford'
Fixed: Select ... WHERE DealerName Like 'Ford%'

Bad: Select ... WHERE DateDiff(mm,OrderDate,GetDate()) >= 30
Fixed: Select ... WHERE OrderDate < DateAdd(mm,-30,GetDate())

关于sql-server - 是什么使得 SQL 语句可控制?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/799584/

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