基于规则的优化器

出现以下情形之一时,即使修改优化器模式使用rbo,oracle也不会使用rbo

1、目标sql中有iot(index organized table)

2、目标sql中有分区表

3、使用了并行查询或并行dml

4、使用了星型链接

5、使用了hash连接

6、使用了索引快速全扫描

7、使用了函数索引

......


在sql中使用hint,就默认启用了cbo,下两个hint例外

1、RULE,表示启用rbo

2、DRIVING_SITE,用于带dblink的sql,使sql在对应端执行


rbo下如何调整sql执行计划

1、等价改写,在where条件中对number和date列上加0,对char和varchar列加上空字符串||‘’,这样可以使原本可以走的索引现在走不了

2、改变sql涉及对象在sql文本中的位置

3、调整相关对象在数据字典缓存中的顺序,当多条执行路径等级值相同时可调整

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值