sql - 我们在查询中使用 join 的顺序是否会影响其执行时间?

标签 sql sql-server sql-server-2005 sql-execution-plan

我们在查询中使用 join 的顺序是否会影响其执行时间?

最佳答案

不,事实并非如此。

SQL Server 的优化器会选择最佳(它认为)的方式,而不管连接顺序如何。

SQL Server 支持特殊提示 FORCE ORDER,它使表按照它们列出的顺序在联接中领先。

这些查询:

SELECT  *
FROM    t_a
JOIN    t_b
ON      a = b
OPTION (FORCE ORDER)

SELECT  *
FROM    t_b
JOIN    t_a
ON      a = b
OPTION (FORCE ORDER)

将生成相同的计划,但省略了选项(强制订单),并添加了不同的计划。

但是,只有当您完全确定自己知道自己在做什么时才应该使用此提示。

关于sql - 我们在查询中使用 join 的顺序是否会影响其执行时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2275286/

相关文章:

sql - 在 SQL 'LIKE' 命令中转义单引号的方法

php - 1452 - 无法添加或更新子行

sql - 选择唯一的记录并在 rails 中显示为类别标题

c# - 尝试与本地数据库 .mdf 建立 SQL 连接,但我成功写入了文件名目录

sql - 一个更好的查询来查找部门中薪水最高的员工列表?

c# - 如何知道在C#代码中具有TRY CATCH处理的存储过程中是否存在错误

SQL:为什么在此 where 子句中过滤掉 NULL 值?

php - 仅当另一个表中存在 id 时才插入值

sql-server - 区分大小写和数据库项目

sql - 为查询中的每个结果调用表值函数