我们在查询中使用 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/