Oracle中Left join的on和where的效率差別


 

一. Oracle中Left join的on和where的效率差別

多表使用left join只是把主表里的所有數據查詢出來,其他表只查詢表中的符合條件的某一條記錄,所以速度非常快;而多表使用where內聯,是把所有表的數據全查出來,然后進行比對,所以速度非常慢。

使用left join要注意確定哪一張表是主表,如果無法確定主表,則選擇哪張表查詢的字段最多,就把哪張表作為主表。

 

二. Oracle中join on(默認內連接inneor)的on和where的效率差別

分析

1、on條件是在生成臨時表時使用的條件,它不管on中的條件是否為真,都會返回左邊表中的記錄。

2、where條件是在臨時表生成好后,再對臨時表進行過濾的條件。這時已經沒有left join的含義(必須返回左邊表的記錄)了,條件不為真的就全部過濾掉。

結論

Where語句的性能優於on語句


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM