Oracle查詢效率優化--子查詢


一個sql語句中如果有子查詢,會較大的影響查詢效率。

在子查詢的表跟父查詢的表有關系的情況,可以通過表關聯的方式優化效率。

 

例如:

select
  a.id,
  a.name,
  (select b.name from table2 b where b.code = a.id) as comename
from table1 a

可以優化成:

select
  a.id,
  a.name,
  b.name as comename
from table1 a,table2 b
where b.code = a.id

 

經試驗在數據量較大時,這種寫法在性能上至少可以提升30-50%的效率,具體提升多少取決於業務邏輯復雜程度。

這種寫法有一個弊端,第二種寫法會把 table1 表中有值,但是table2 中comename為空的數據屏蔽掉,導致第一種

查詢結果數量大於第二種,在使用時要注意業務要求。

 

查詢數據量大的時候,首先要考慮的優化方案是:添加索引   

 


免責聲明!

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



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