T/SQL效率和执行顺序

Kyl*_*ndo 6 sql t-sql performance sql-execution-plan

关于SQL中语句的执行顺序,以下性能是否有明显区别?

SELECT * FROM Persons
WHERE UserType = 'Manager' AND LastName IN ('Hansen','Pettersen')
Run Code Online (Sandbox Code Playgroud)

和:

SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen') AND UserType = 'Manager'
Run Code Online (Sandbox Code Playgroud)

如果有任何差异,是否可能有一个链接等,你可以在哪里可以了解更多相关信息?

万分感谢,

凯尔

dav*_*vek 4

优化器,因为它使用基于成本的优化器,将决定哪条“路线”是最好的:它将根据统计数据计算选项的成本,然后从那里开始。术语的顺序应该没有区别(尽管嵌套方式可能会有所不同)。

编辑:直到最近,Oracle 曾经拥有基于规则的优化器 (RBO),但现在已被逐步淘汰。由于 RBO 不处理统计信息,因此可以根据谓词的顺序看到查询计划的差异。