Oracle with as 用法


  項目中早些時間,有個oracle查詢語句寫的極其復雜,因為數據量小的關系,當時也並沒有怎么在意,回來隨着時間過去,客戶數據庫數量越來越大,那段語句的劣性就體現的非常明顯。優化時,發現查詢關系邏輯混亂又復雜(雖然數據查詢結果並沒有錯),多個類似的子查詢嵌套,導致查詢性能變的很低。

  尋求資料知道ORACLE有個WITH as 用法及其好用 

     寫法大致如下:

  WITH  query1 AS

(select ...from ....where ..),

query2  AS

(select...from ...where..),

query3 AS

(select...from ...where..)

SELECT ...FROM query1,quer2,query3 

where ....;

  上述代碼,每一個逗號(必不可少)代表一段子查詢,觀察執行計划發現,執行時with as 中的子查詢結果會以臨時表的形式存在。

這樣寫每段子查詢相應的表僅會被檢索一次,不會像原來嵌套的一樣反復掃描相同的表,達到了“少讀的目的”,大大提高了數據分析以及查詢效率.


免責聲明!

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



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