【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