帮朋友优化SQL

帮朋友发来消息,分析了AWR,系统压力不大,就是某条语句执行起来慢,已把sql抓出来,看看能否快点

 

 SELECT sum(a.DECIMAL02 - a.DECIMAL01)
  FROM AD_ACC_ENTRIE           A,
       AD_LINE_ITEM            B,
       AES_CFG_REFLECT_MAPPING C,
       AD_BATCH                D
 WHERE A.LINE_ITEM_SERI = B.SERI_NO
   AND A.BATCH_NO = D.BATCH_NO
   AND D.STATUS = '3'
   AND D.SYS_NO = 'S0001'
   AND A.DATE01 BETWEEN :1 AND :2
   AND (A.MSTRING03 LIKE :3)
   AND a.MSTRING06 = c.BASE_VALUE
   and c.REFLECT_NAME = 'RiskCodeBusToFin'
   and c.REFLECT_VALUE like :4
   and b.SSTRING26 = :5

没法给出绑定变量具体值,只有分析执行计划

 AD_ACC_ENTRIE 表是大表 4000多w,AD_LINE_ITEM 表有2000多w  ,其他表都是小表 几百条,几千条

执行计划如下

 

id=10中对 AD_ACC_ENTRIE 表没走索引,并且产生回表

分析表结构 其中 DATE01 是时间列选择性低 ,MSTRING03是序号列 选择性高,表中索引创建了没走
create index IDX_ACCENTRIE_YW on AD_ACC_ENTRIE (DATE01,MSTRING03);

创建MSTRING03为前缀的组合索引

 调整后执行计划

 

朋友反馈感觉快多了,由于是财务系统,没法再跑一遍,需要等下个月出账才能验证最终响应时间

等待下个月 反馈结果。。。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值