小编典典

SQL Server:完全外部联接的顺序重要吗?

sql

我在查询中有4个全外连接,但连接速度确实很慢,那么FULL OUTER JOIN性能/结果的顺序是否有所不同?

FULL OUTER JOIN =铈。

然后,

我有一种情况:A铈.B铈.C铈.D

所有联接都发生k在所有A,B,C,D中包含的所有键共有的键上

然后:

  • 改变cer连接的顺序会影响性能吗?
  • 改变铈的顺序会改变结果吗?

我认为它不应该影响结果,但是不确定是否会影响性能!

更新:

假设结果集与顺序无关,SQL Server是否会自动重新排列联接以提高性能?


阅读 223

收藏
2021-04-22

共1个答案

小编典典

否,重新排列JOIN指令不应影响性能。MSSQL(与其他DBMS一样)具有查询优化器,其作用是为任何给定查询找到最有效的查询计划。通常,这些工具做得很好-
因此您不太可能轻易击败优化器。

就是说,他们偶尔确实会出错。这就是阅读执行计划的地方。您可以添加联接提示来告诉MSSQL如何加入你的表(此时,订货
事情)。通常,您会从最小到最大的表进行排序(尽管使用FULL JOIN,它不太重要)并遵循联接类型的经验法则

既然您正在做FULL JOINS,基本上就是从磁盘上读取了全部4个表。那可能很昂贵。您可能需要重新检查该问题,并查看是否可以通过其他方式解决该问题。

2021-04-22