【发布时间】:2018-01-09 20:08:28
【问题描述】:
我知道有很多关于 WHERE 谓词顺序重要/不重要以及将谓词 WHERE 子句与 ON 子句放在哪里的讨论,但是 JOIN 谓词顺序呢?
例如,以下之间是否有任何性能差异:
SELECT *
FROM table1 AS a
JOIN table2 AS b ON
a.key1 = b.key1
AND a.key2 = b.key2
对比
SELECT *
FROM table1 AS a
JOIN table2 AS b ON
a.key2 = b.key2
AND a.key1 = b.key1
有性能差异吗?有可能吗?如果是这样,在什么边缘情况下?
谢谢
【问题讨论】:
-
不,它们(应该)都生成相同的查询计划。您可以通过查看为这两个查询生成的查询计划轻松地确认这一点。
标签: performance tsql join