ORACL数据处理优化过程(执行时间从几个小时到10几秒的优化过程)
来源:互联网 发布:2005网络流行歌曲大全 编辑:程序博客网 时间:2024/05/04 00:23
今天下午帮助客服后台刷数据库,大概有A 表 43万的数据量, B 表大概有1万条数据。
功能是:需要将B表汇总后的数据同步到A表。
第一次使用语句用如下:
UPDATE B SET B.sumtdxx=(SELECT SUM(mj) FROM t WHERE B.OBJECTID=T.OBJECTID AND T.ISEFFECT=0)
WHERE exists (select * from t where t.objectid=b.objectid and t.iseffect=0 and b.iseffect=0)
运行了10几分钟没见结果,想想,有4条这样的语句,那不搞上好几个小时,当时客户也催的急。
第二次更换成
MERGE INTO B
USING T
ON (B.OBJECTID=T.OBJECTID)
WHEN MATCHED THEN
UPDATE SET B.sumtdxxht=(SELECT SUM(mj) FROM t
WHERE B.OBJECTID=T.OBJECTID AND T.ISEFFECT=0 and t.tdlb=2)
效果还是不理想。执行了3分钟没见结果。
第三次:使用临时表+MERGE的方式:10秒搞定。
create table T_sum as select
sum(case when s1.tdlb = '1' and s1.mj is not null then s1.mj else 0 end) as SUMTDXXST,
sum(case when s1.tdlb = '2' and s1.mj is not null then s1.mj else 0 end) as SUMTDXXHT,
sum(case when s1.tdlb = '3' and s1.mj is not null then s1.mj else 0 end) as SUMTDXXCD,
sum(case when s1.tdlb = '4' and s1.mj is not null then s1.mj else 0 end) as SUMTDXXELSE,
s1.objectid from T_32e5bcg7 s1 WHERE S1.ISEFFECT =0 group by s1.objectid;
commit;
MERGE INTO b
USING T_sum s
ON (b.OBJECTID=s.OBJECTID )
WHEN MATCHED THEN
UPDATE SET b.SUMTDXXST = s.SUMTDXXST,
b.SUMTDXXHT = s.SUMTDXXHT,
b.SUMTDXXCD = s.SUMTDXXCD,
b.SUMTDXXELSE = s.SUMTDXXELSE;
update b set b.SUMTDXX=(b.SUMTDXXST+ b.SUMTDXXHT+b.SUMTDXXCD+b.SUMTDXXELSE);
commit;
drop table T_sum;
- ORACL数据处理优化过程(执行时间从几个小时到10几秒的优化过程)
- 【MySQL 帮助】帮朋友优化SQL的过程-->从4S到0.011秒
- [MySQL View]最有意思的视图view优化过程,从30分钟到0.08秒
- 【MySQL 帮助】帮朋友优化SQL的过程-->从4S到0.011秒
- [MySQL View]最有意思的视图view优化过程,从30分钟到0.08秒
- Java与MySQL优化之旅(一)——从14小时到40秒
- 从140秒到2秒的优化
- 从15小时优化到1分钟的SQL
- sql优化实战:从300秒+到10秒(调整参数)
- sql优化实战:从250秒+到10秒(简化语句)
- 一次使用临时表优化数据处理的过程
- 记一次数据处理效率优化过程
- 高并发秒杀系统实现和优化分析(行级锁优化和具体过程优化)
- 算法优化,如何从120秒到0.5秒
- 查询语句优化,从48秒到0.3秒
- 【LeetCode001算法/编程练习C++】--twoSum //从816ms到16ms的优化过程
- 网站过程中title优化的几个误区
- sql优化实战:从40分钟到10秒(更新统计信息)
- ubuntu 使用经验01
- oracle笔记——存储函数练习
- Nexus 5入门基础
- 用NSTimer定时刷新按钮的文字,避免按钮闪烁的办法
- vim的中文文档
- ORACL数据处理优化过程(执行时间从几个小时到10几秒的优化过程)
- spring4+hibernate3+struts2整合模板
- Java 运算符
- UML之类图
- BIZTALK2013的学习一
- Android开源项目(类库+控件)
- uva-10879
- 题目1076:N的阶乘
- iOS中线程以及GET和POST请求的一些知识