【问题标题】:TSQL - Do the JOIN predicates order matterTSQL - JOIN 谓词顺序是否重要
【发布时间】: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


【解决方案1】:

查询优化器将选择查询计划。它们是同一个查询。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-03-15
    • 1970-01-01
    • 2016-12-14
    • 1970-01-01
    • 2016-05-07
    • 2011-06-14
    • 2010-10-21
    相关资源
    最近更新 更多