【问题标题】:Does SQL Server has any priority for where clause when use and? [duplicate]SQL Server在使用and时对where子句有任何优先级吗? [复制]
【发布时间】:2018-08-22 16:35:36
【问题描述】:

我有 2 列:NamePrice

Price 是一个计算列,它通过一些查询调用函数来计算价格。

现在我想知道:

select * 
from myTable 
where name like 'j%' and Price > 1000

select * 
from myTable 
where Price > 1000 and name like 'j%'

我想知道我是否首先使用 name like 'j%' 是否有更好的性能,因为也许 sql server 一开始不会检查所有记录的计算列?

【问题讨论】:

  • 好吧,当你同时运行它们并查看执行时间时,你发现了什么?
  • @dfundako,我现在记录不多,只是想知道,以备不时之需。
  • 您是否尝试将两者都运行并与执行计划进行比较?
  • 完全没有区别。查询引擎将按照它认为可以提供最佳检索选项的任何顺序来评估这些内容。谓词的顺序和每个谓词中的值顺序都无关紧要。
  • @SepehrEstaki 用大量虚拟行填满你的表并运行它?

标签: sql-server performance


【解决方案1】:

完全没有区别。查询引擎将按照它认为可以提供最佳检索选项的任何顺序来评估这些内容。谓词的顺序和每个谓词中值的顺序都无关紧要。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-11-29
    • 1970-01-01
    • 2014-05-04
    • 2016-11-17
    • 2020-12-23
    • 1970-01-01
    相关资源
    最近更新 更多