ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 索引学习三-测试CBO与RBO对于索引使用的一个例子

索引学习三-测试CBO与RBO对于索引使用的一个例子

原创 Linux操作系统 作者:lsq_008 时间:2008-05-17 11:07:44 0 删除 编辑

1. 测试表test,执行一个查询,在empno列上创建了唯一索引,在没有做分析时,使用RBO生成执行计划:

scott@TEST>select empno 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>analyze table test compute statistics;
 
Table analyzed.
 
scott@TEST>select empno 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的先进性。
 

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

请登录后发表评论 登录
全部评论
十余年大型金融及电信系统数据库管理经验,曾服务于中国建设银行、中国移动。对oracle,mysql数据库有深入了解。 擅长python开发,独立开发了开源数据库自动化监控运维平台Power Monitor。

注册时间:2008-02-29

  • 博文量
    335
  • 访问量
    1369116