Oracle执行计划不稳定原因,Oracle执行计划异常

120的trc文件可以看到成本最低的是bit map and的执行路径:

1. IDX_ORDER_ORDER_CONFIRM_TIME范围扫描的成本是694.69,索引的选择率是1.4638e-04

Access Path: index (RangeScan)

Index: IDX_ORDER_ORDER_CONFIRM_TIME

resc_io: 694.00  resc_cpu: 7033121

ix_sel: 1.4638e-04  ix_sel_with_filters: 1.4638e-04

Cost: 694.69  Resp: 694.69  Degree: 1

2. IDX_ORDER_PATIENT_ID范围扫描的成本是15.02

Access Path: index (AllEqRange)

Index: IDX_ORDER_PATIENT_ID

resc_io: 15.00  resc_cpu: 165625

ix_sel: 2.6288e-06  ix_sel_with_filters: 2.6288e-06

Cost: 15.02  Resp: 15.02  Degree: 1

3. 两个索引bit map and之后的成本是13,优化器选择了cost最低的bit map and执行计划

Access path: Bitmap index - accepted

Cost: 13.21 Cost_io: 12.01 Cost_cpu: 12299390 Sel: 3.8236e-10

Not believed to be index-only

150的trc文件中,成本最低是是IDX_ORDER_PATIENT_ID范围扫描:

1. IDX_ORDER_ORDER_CONFIRM_TIME范围扫描的成本变了,从上面的694.69变为888.88,索引的选择率也从1.4638e-04变为1.8733e-04,

应该就是这里的索引的成本增加,导致bitmap and之后的成本比单独IDX_ORDER_PATIENT_ID范围扫描的成本略高,因此选择了成本最低的IDX_ORDER_PATIENT_ID范围扫描的执行计划

Access Path: index (RangeScan)

Index: IDX_ORDER_ORDER_CONFIRM_TIME

resc_io: 888.00  resc_cpu: 8999327

ix_sel: 1.8733e-04  ix_sel_with_filters: 1.8733e-04

Cost: 888.88  Resp: 888.88  Degree: 1

2. IDX_ORDER_PATIENT_ID范围扫描的成本是15.02

Access Path: index (AllEqRange)

Index: IDX_ORDER_PATIENT_ID

resc_io: 15.00  resc_cpu: 165625

ix_sel: 2.6288e-06  ix_sel_with_filters: 2.6288e-06

Cost: 15.02  Resp: 15.02  Degree: 1

3. bit map and的成本是15.27

Access path: Bitmap index - rejected

Cost: 15.27 Cost_io: 14.01 Cost_cpu: 12906636 Sel: 4.8933e-10

至于为什么两个执行计划不一样,应该和IDX_ORDER_ORDER_CONFIRM_TIME索引选择率变化导致bit map的成本增加有关。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值