编辑9-3-10:我最近发现这个博客条目非常有启发性。 http://optimizermagic.blogspot.com/2007/12/outerjoins-in-oracle.htmlOracle外连接 - 性能
有时候,其中一个或另一个连接语法可能实际上表现更好。我还发现,当选择ANSI连接语法时,有一点注意到性能略有提高(仅在VLDB中可见)。可能不足以让人烦恼,但对于那些认真掌握Oracle DB的人来说,查看文章可能会有帮助。
我知道两个外连接语法对于Oracle:(假设我的第二个样本正确的语法)
select a, b
from table1
left outer join table2
on table2.foo = table1.foo
OR
select a, b
from table1, table2
where table2.foo(+) = table1.foo
这些性能有差异吗?起初,我认为它只是开发人员的一种风格偏好,但后来我读了一些让我觉得可能会使用一种风格而不是另一种风格的理由。
(+)进入非ANSI连接的WHERE子句。 – 2009-08-20 20:31:46
谢谢 - 可能很明显,我从不使用旧的Oracle方式。我来自SQL Server世界。我会纠正它。 – user158017 2009-08-21 00:58:24