RBO AND CBO (二)

本文详细介绍了Oracle数据库中SQL优化器的不同模式,包括CHOOSE、RULE、ALL_ROWS等,并解释了这些模式如何影响SQL语句的执行计划选择。特别关注了CBO与RBO优化器之间的区别以及它们在不同条件下的行为。

1OPTIMIZER_MODE选项如下:

* ALL_ROWS

* FIRST_ROWS_n

* FIRST_ROWS

* CHOOSE

* RULE

1CHOOSE

仅在9i及之前版本中被支持,10g已经废除。8i9i中为默认值。

这个值表示SQL语句既可以使用RBO优化器也可以使用CBO优化器,而决定该SQL到底使用哪个优化器的唯一因素是,所访问的对象是否存在统计信息。

如果所访问的全部对象都存在统计信息,则使用CBO优化器优化SQL

如果只有部分对象存在统计信息,也仍然使用CBO优化器优化SQL,优化器会为不存在统计信息对象依据一些内在信息(如分配给该对象的数据块)来生成统计信息,只是这样生成的统计信息可能不准确,而导致产生不理想的执行计划;

如果全部对象都无统计信息,则使用RBO来优化该SQL语句。

2RULE

仅在9i及之前版本中被支持,10g已经废除。

不论是否存在统计信息,都将使用RBO优化器来优化SQL

3ALL_ROWS

10g中为默认值。

不论是否存在统计信息,都使用CBO优化器,且把CBO的优化目标设定为“最小的成本”。

RBO ,CBO判断依据,就是看COST,card(rows),BYTES是否为空,为空是RBO,不为空则是CBO

[@more@]

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

转载于:http://blog.itpub.net/22934571/viewspace-1044190/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值