千万级数据更新的性能优化

        某机构去年以 来,数据量暴增,原先写的包已经严重影响了每天的数据汇总,数据量 虽然只 增加了一倍,但是每天的数据汇总时间却是原来5到6倍而且数据还有继续上涨的可能性 ,其中影响性能的一个关键语句是 一个delete语句,这个delete的语句的是通过ROWID进行 数据删除的,原先的程序通过bulk collect limit每10W条数据分批提交(forall 循环),  如果单从delete来说,这句已经到了顶峰,但是这相当于从一个8000w数据(每个分区)的表每次汇总都要删除几百万、这个随着数据量的增加已经严重影响了性能。
我们刚开始试了很多种方法,但是性能还不及原来,后来我们经过对表里的数据进行分析,我们发现每条账户数据前两位以字母开始,后面以数字结束,这个时候我们想,是否可以最后一位数字将所有数据进行切片建立位图索引 ,减小关联的笛卡尔积,同时将原有的delete语句换成insert,就是说我们将原来没有更新的数据整体插入到一张临时表,然后对原来的分区turncate掉,然后再将没有更新的数据插回去,同时也因为已经对数据进行了切片,关联结果集变小,SQL性能得到了极大的提升。通过,对这个SQL的优化,我们发现,优化数据,首先要(1)对数据有所了解(2) 千万  级数据的更新慎用delete(3)对大表数据操作,需要根据数据特点进行切片处理。          

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/7199501/viewspace-1676906/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/7199501/viewspace-1676906/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值