Lin*_*815 5 database oracle performance join
我的数据库教授告诉我们使用:
SELECT A.a1, B.b1 FROM A, B WHERE A.a2 = B.b2;
Run Code Online (Sandbox Code Playgroud)
而不是:
SELECT A.a1, B.b1 FROM A INNER JOIN B ON A.a2 = B.b2;
Run Code Online (Sandbox Code Playgroud)
据推测,Oracle不喜欢JOIN-Syntaxes,因为这些JOIN语法比笛卡尔积的WHERE限制更难优化.
我无法想象为什么会出现这种情况.唯一的性能问题可能是解析器需要更多地解析几个字符.但在我眼里,这一点可以忽略不计.
我发现了这个Stack Overflow问题:
这篇文章在Oracle文档中:https://docs.oracle.com/cd/B19306_01/server.102/b14200/queries006.htm
Oracle建议您使用FROM子句OUTER JOIN语法而不是Oracle join运算符.
有人可以通过链接向我提供Oracle的最新建议.因为她不承认StackOverflow(这里可以回答所有人),10g文档在这里是过时的.
如果我错了,Oracle真的不喜欢JOINS现在比那还好,但是我找不到文章.我只是想知道谁是对的.
非常感谢能帮助我的每个人!
Tim*_*sen 10
你的教授应该和哥伦比亚大学计算机科学教授戈登林诺夫谈谈.Gordon和本网站上的大多数SQL爱好者几乎总是会告诉你使用显式连接语法.原因很多,包括(但不限于):
FROM和WHERE子句中来混淆连接逻辑.关于性能,据我所知,您编写的查询的两个版本都将针对相同的内容进行优化.你总是可以检查两者的执行计划,但我怀疑你会经常看到一个显着的差异.
| 归档时间: |
|
| 查看次数: |
1436 次 |
| 最近记录: |