纸上得来终觉浅,绝知此事要躬行
索引学习三-测试CBO与RBO对于索引使用的一个例子
上一篇 /
下一篇 2008-05-17 11:07:44
/ 个人分类:读书笔记
1. 测试表test,执行一个查询,在empno列上创建了唯一索引,在没有做分析时,使用RBO生成执行计划:
scott@TEST>selectempno from test where empno>100 and empno<200 order by empno desc;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE
1 0 SORT (ORDER BY)
2 1 INDEX (RANGE SCAN) OF 'IDX_TEST' (UNIQUE)
可见,该执行计划需要排序。
2. 分析表test,并执行同样查询。
scott@TEST>analyzetable test compute statistics;
Table analyzed.
scott@TEST>selectempno from test where empno>100 and empno<200 order by empno desc;
Execution Plan
----------------------------------------------------------
0 SELECT STATEMENT ptimizer=CHOOSE (Cost=3 Card=100 Bytes=500
)
1 0 INDEX (RANGE SCAN DESCENDING) OF 'IDX_TEST' (UNIQUE) (Cost
=3 Card=100 Bytes=500)
可见,分析表之后,oracle选择了CBO方式来生成执行计划,没有做排序操作。大大提高了执行效率,这也可以体现出CBO的先进性。
导入论坛
引用链接
收藏
分享给好友
推荐到圈子
管理
举报
TAG: