最大化from子句中的连接并最小化where子句中的连接:true?

时间:2014-04-25 16:46:51

标签: sql performance join syntax

这是一个考试问题,知识渊博的人可以给出一个解释答案吗?

1 个答案:

答案 0 :(得分:2)

大多数RDBMS产品都以相同方式优化两个查询。

在Peter Gulutzan和Trudy Pelzer的SQL Performance Tuning中,作者测试了六个或八个品牌的RDBMS,发现两种不同的连接方式之间没有显着的性能差异。因此,为了性能而没有偏好一种语法。

JOIN子句中使用FROM语法的原因是:

  • 允许在SQL-89(逗号样式)连接语法中不可能的连接类型,例如外连接,自然连接,USING()子句等

  • 符合标准SQL-92语法。 RDBMS的所有品牌多年来都支持这种语法,甚至是Oracle和Microsoft / Sybase,它们过去曾一度为外连接发明了自己的专有语法。

  • 清理您的代码,并使您更清楚地了解您正在使用的连接类型(内部,外部),以及哪些术语是连接条件与哪些术语是行限制条件。

使用逗号样式语法而不是JOIN语法的原因是:

  • 没有,除非是" J"键盘上的键坏了。 ; - )