纸上得来终觉浅,绝知此事要躬行

索引学习三-测试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:

 

评分:0

我来说两句

显示全部

:loveliness: :handshake :victory: :funk: :time: :kiss: :call: :hug: :lol :'( :Q :L ;P :$ :P :o :@ :D :( :)

日历

« 2008-07-07  
  12345
6789101112
13141516171819
20212223242526
2728293031  

数据统计

  • 访问量: 1112
  • 日志数: 53
  • 影音数: 1
  • 建立时间: 2008-02-29
  • 更新时间: 2008-06-27

RSS订阅

Open Toolbar