累计的力量,delete全表扫描导致程序运行时间过长。

昨天晚上熬夜加班到3点多,主要时间耗在一个做账业务上,这个业务是三个月前开始的,前几次做都还是比较快的不到一个小时,可是昨天晚上竟然花费了4个多小时。我手头工作太多,当时没顾得上找原因。今天早上分析了一下那个时段的AWR,原来祸首是个DELETE语句。
DELETE ZC67 WHERE BAZ203 = :B2 AND BAC100='0' AND AAE140 = :B1 ;
执行计划
----------------------------------------------------------
Plan hash value: 318370648
-----------------------------------------------------------------------------
| Id  | Operation          | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
-----------------------------------------------------------------------------
|   0 | DELETE STATEMENT   |        |     1 |    19 |  2447   (2)| 00:00:30 |
|   1 |  DELETE            | T_ZC67 |       |       |            |          |
|*  2 |   TABLE ACCESS FULL| T_ZC67 |     1 |    19 |  2447   (2)| 00:00:30 |
-----------------------------------------------------------------------------
统计信息
----------------------------------------------------------
          4  recursive calls
          0  db block gets
      10989  consistent gets

这个语句循环的调用,执行了接近6万次。

20100701_ff239631b883b1a6070auwdjbTOtXULT.gif
1.GIF

整个包的CPU时间是13389,可这个语句就运行了12774秒。(这个语句是包调用的)。
解决办法是对BAZ203增加索引,这个字段是个序列产生的,每条记录都唯一。区分度非常好。

之所以前几次比较快是由于数据量还不大,随着数据量变大,运行时间长也就在所难免了。

[ 本帖最后由 wei-xh 于 2010-7-1 12:00 编辑 ]

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

转载于:http://blog.itpub.net/22034023/viewspace-666809/

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值