【SQL優化】union、union all、or的使用


如果查詢上有索引,union all比or快,因為前者會利用索引查找,or會使索引失效;

如果查詢上沒有索引,or比union快,因為前者查詢引擎會一次性完成指令分析。

—————————————————————————————————————————

union all適用場合:1、如果合並多個select結果集,沒有刻意要去除重復行

           2、如果union的各個select結果集,不存在交集

Oracle數據庫對union的內部處理過程:先執行union all操作獲取所有的數據合集,再執行去除重復行操作,最后按照默認排序規則進行排序,即按照select后面的字段順序排序的,先按照第一個字段排序,如果第一個字段相同,就安裝第二個字段排序。

union和union all關鍵字需要注意的問題是:必須保證各個select集合的結果有相同個數的列,並且每個列的類型是一樣的,列名不一定要相同,oracle會將第一個結果的列名作為結果集的列名。

 


免責聲明!

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



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