关于SQL中语句的执行顺序,以下性能方面有什么区别吗?
SELECT * FROM Persons
WHERE UserType = 'Manager' AND LastName IN ('Hansen','Pettersen')
和:
SELECT * FROM Persons
WHERE LastName IN ('Hansen','Pettersen') AND UserType = 'Manager'
如果有任何区别,是否可能有一个链接等,您可以在那里了解更多信息?
万分感谢,
凯尔
最佳答案
优化器,因为它使用基于成本的优化器,将决定哪个“路由”是最好的:它将根据统计数据对选项进行成本,然后从那里开始。术语的顺序应该没有区别(尽管您嵌套事物的方式可能会有所不同)。
编辑:Oracle 曾经 - 直到最近 - 一个基于规则的优化器 (RBO),但 has now been phased out .由于 RBO 不处理统计信息,因此可以根据谓词的顺序查看查询计划的差异。
关于sql - T/SQL 效率和执行顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2607623/