在Oracle中总是使用join子句是否好?

时间:2017-05-05 10:05:11

标签: sql oracle

我最近了解到在Oracle中我们可以做类似

的事情
select t1.a, t2.b 
from table1 t1, table2 t2
where t1.x = t2.x

相当于

select t1.a, t2.b
from table1 t1
join table2 t2 on (t1.x=t2.x)

是否有任何性能差异,或者是否有其他参数我们应该使用一种风格而不是另一种风格?

1 个答案:

答案 0 :(得分:4)

通常它们是相同的,但是较低的一个 - 也称为“ANSI连接语法”应该是Oracle推荐的首选,并且由于许多其他原因,请参阅OUTER JOIN文档。

只有一个例外(我知道):当您使用MATERIALIZED VIEW创建FAST REFRESH时,您必须使用旧的Oracle连接语法,否则无法进行FAST REFRESH。

很久以前我在Oracle创建了一个SR。 Oracle并不认为这是一个错误,而是“缺乏文档”。根据我的知识,这个限制/错误仍然没有解决。