Oracle訪問索引的執行計劃(四)

stonebox1122發表於2017-05-30

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部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-2140059/,如需轉載,請註明出處,否則將追究法律責任。

相關文章