ITPub博客

首页 > 数据库 > Oracle > Oracle访问索引的执行计划(四)

Oracle访问索引的执行计划(四)

原创 Oracle 作者:stonebox1122 时间:2017-05-30 21:19:46 0 删除 编辑

Oracle访问索引的执行计划(一)
Oracle访问索引的执行计划(二)
Oracle访问索引的执行计划(三)

 

如果目标表比较大,相关字段上有索引,根据CBO,Oracle可能会使用索引快速全扫描(INDEX FAST FULL SCAN)来扫描索引,提高访问速度。索引快速全扫描使用多块读,可以并行执行,结果是无序的。产生db file scattered reads事件。

 

创建一个测试表。
SQL> create table objtest as select object_id,object_name from dba_objects;

Table created.

 

SQL> select count(*) from objtest;

  COUNT(*)
----------
     87044

 

创建一个非唯一索引。
SQL> create index idx_objtest_id on objtest(object_id);

Index created.

 

收集统计信息。
SQL> exec dbms_stats.gather_table_stats('HR','OBJTEST',estimate_percent=>100,cascade=>true);

PL/SQL procedure successfully completed.

 

获取字段所有非空值。
SQL> select object_id from objtest where object_id is not null;

87043 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 1925724089

---------------------------------------------------------------------------------------
| Id  | Operation            | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |                | 87043 |   425K|    54   (0)| 00:00:01 |
|*  1 | INDEX FAST FULL SCAN| IDX_OBJTEST_ID | 87043 |   425K|    54   (0)| 00:00:01 |
---------------------------------------------------------------------------------------

 

获取字段某个范围的值。
SQL> select object_id from objtest where object_id between 1 and 80000;

79152 rows selected.


Execution Plan
----------------------------------------------------------
Plan hash value: 1925724089

---------------------------------------------------------------------------------------
| Id  | Operation            | Name           | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT     |                | 77996 |   380K|    55   (2)| 00:00:01 |
|*  1 | INDEX FAST FULL SCAN| IDX_OBJTEST_ID | 77996 |   380K|    55   (2)| 00:00:01 |
---------------------------------------------------------------------------------------

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

请登录后发表评论 登录
全部评论

注册时间:2013-12-13

  • 博文量
    204
  • 访问量
    1188965