我使用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