oracle用UNION-ALL 替换UNION ( 如果有可能的话)
2024-09-29 00:39:08
当SQL语句需要UNION两个查询结果集合时,这两个结果集合会以UNION-ALL的方式被合并, 然后在输出最终结果前进行排序.
如果用UNION ALL替代UNION, 这样排序就不是必要了. 效率就会因此得到提高.
举例:
低效:
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
UNION
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
高效:
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
UNION ALL
SELECT ACCT_NUM, BALANCE_AMT
FROM DEBIT_TRANSACTIONS
WHERE TRAN_DATE = ’31-DEC-95’
需要注意的是,UNION ALL 将重复输出两个结果集合中相同记录. 因此各位还是
要从业务需求分析使用UNION ALL的可行性.
UNION 将对结果集合排序,这个操作会使用到SORT_AREA_SIZE这块内存. 对于这
块内存的优化也是相当重要的. 下面的SQL可以用来查询排序的消耗量
Select substr(name,1,25) "Sort Area Name",
substr(value,1,15) "Value"
from v$sysstat
where name like 'sort%'
最新文章
- Java学习笔记:控制反转
- linux2.6内核compat_ioctl函数
- Android开发技巧:像QQ一样输入表情图像
- android开发学习笔记:圆角的Button
- 开源代码——Crouton
- ZOJ2971 Give Me the Number 【模拟】
- S3C2440 TFTLCD驱动详解
- [原创]一种基于Python爬虫和Lucene检索的垂直搜索引擎的实现方法介绍
- Struts2漏洞解决
- 【OOM】GC overhead limit exceeded
- Hadoop 发行版本 Hortonworks 安装详解(二) 安装Ambari
- SUSE12Sp3-MongoDB安装
- SQL语句检索数据排序及过滤
- 设计模式之Factory(工厂)(转)
- axios全局设置url公共请求头
- node.js express开发web问题
- SmartSVN has inconsistent newlines解决方法
- 理解metrics.classification_report
- kibana显示报错
- 洛谷.4238.[模板]多项式求逆(NTT)