我使用FULL OUTER JOIN连接了2个表,这需要6分钟的时间运行并提供输出。Oracle SQL全外连接
SELECT *
FROM tab1 FULL OUTER JOIN tab2
ON tab1.id = tab2.id
;
我没有使用LEFT OUTER联盟JOIN和RIGHT OUTER JOIN同样的事情。这个只需要15秒
了SELECT *
FROM tab1, tab2
WHERE tab1.id (+) = tab2.id
UNION
SELECT *
FROM tab1, tab2
WHERE tab1.id = tab2.id (+)
;
有谁知道为什么发生这种情况?
你是否检查过这两个查询的查询计划? – 2010-11-10 18:37:35
Oracle建议应避免使用传统(+)语法。使用更通用的ISO标准LEFT/RIGHT JOIN语法,因此更适合SO等论坛。 – sqlvogel 2010-11-11 13:36:41