gpt4 book ai didi

sql-server - SQL Server WHERE 子句的排序

转载 作者:行者123 更新时间:2023-12-02 21:16:13 24 4
gpt4 key购买 nike

对于 SQL Server,使用不同顺序的 WHERE 子句会对查询优化产生任何影响吗?

例如,查询计划是否为:

select * from table where col1 = @var1 and col2 = @var2

与此不同吗?:

select * from table where col2 = @var2 and col1 = @var1

当然,这是一个人为的示例,我已经尝试过更复杂的示例。两者的查询计划是相同的,但我一直想知道是否值得排序 WHERE 子句,以便最具体的子句排在前面,以防优化器以某种方式“修剪”结果并最终变得更快。

这实际上只是一个思想实验,我并不是要解决特定的性能问题。

其他 RDBMS 也是如此吗?

最佳答案

每个现代 RDBMS 都有一个查询优化器,它负责对条件重新排序等。一些优化器使用相当复杂的统计数据来做到这一点,并且它们经常击败人类关于什么是好的排序、什么不是好的排序的直觉。所以我的猜测是:如果你可以肯定地说“这个排序比另一个更好”,那么优化器也可以,并且它会自己找出答案。

结论:不用担心这样的事情。很少值得花时间。

关于sql-server - SQL Server WHERE 子句的排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1707052/

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