可爱的琪琪,开心快乐每一天
温馨小屋
可爱的琪琪,开心快乐每一天
posts - 7,comments - 39,trackbacks - 0
使用的oracle10g数据库
请看下面的sql语句,从早上11点执行到晚上9点还没执行完
update chenqi_res_tp t set t.PTPID=(select t2.uuid from res_tp t2 where t.PARAM=t2.REMARK);
commit;
然后我们看看insert
insert into res_tp_end(UUID,TPNAME,USERLABEL,PTPID,MEID,EQUIPMENTID,PROFESSIONALTYPE,EDGEPOINT)
select SE_RES_TP_END.nextval,t2.tpname,t2.userlabel,t2.uuid,t2.meid,t2.equipmentid,t2.professionaltype,t1.uuid
from chenqi_res_tp t1, res_tp t2 where t1.param=t2.remark;
commit;
5-7分钟就执行完了
数据量大概是100w条
由此我们可以在大数据量操作时将复杂sql语句转化为简单sql语句分次执行,执行完就commit,效率快很多,同时少用update,特别是多表关联的update,将需要update的数据插入另外的表然后再插回来效率高很多倍。
posted on 2007-03-18 21:37 陈琪 阅读(6064) 评论(1)  编辑  收藏 所属分类: java

FeedBack:
# re: 大数据量insert与update语句的效率问题
2007-03-20 13:34 | 饶志华
在使用子查询作DML操作时,子查询的索引及查询优化极其重要  回复  更多评论
  

只有注册用户登录后才能发表评论。


网站导航: