sql - T/SQL 效率和执行顺序

标签 sql performance tsql sql-execution-plan

关于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/

相关文章:

sql - 如何针对矩形区域优化此 SQL 查询?

SQL Server - BEFORE INSERT 触发器

sql - T-SQL 查询 : where column not in is giving wrong result

sql-server - 将 MDX 转换为 SQL 语句

iis-6 - ASP.Net 应用程序第一次运行缓慢

sql - 将三个 bool 列合并为一个枚举列

java - 是否可以将 GROUP BY 与绑定(bind)变量一起使用?

php - 建立一个数据库来跟踪哪些用户点击了哪些链接?

performance - 成为更好/更高效的 PLC 程序员

performance - 在不损失速度的情况下去除可变性