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

stonebox1122發表於2017-05-25

Oracle中常用的索引有B樹索引和點陣圖索引,先來看B樹索引。
訪問B樹索引也有很多方式,最簡單的是索引唯一掃描,出現在where條件的欄位有唯一索引,且使用等值查詢的時候,返回的記錄至多1條。索引唯一掃描的執行計劃為INDEX UNIQUE SCAN。


檢視HR使用者下EMPLOYEES表的EMPLOYEE_ID欄位的索引,為唯一索引。
SQL> select a.table_name,column_name,a.index_name,index_type,uniqueness from user_indexes a,user_ind_columns b where a.index_name=b.index_name and a.table_name='EMPLOYEES' and column_name='EMPLOYEE_ID';

TABLE_NAME           COLUMN_NAME          INDEX_NAME           INDEX_TYPE           UNIQUENES
-------------------- -------------------- -------------------- -------------------- ---------
EMPLOYEES            EMPLOYEE_ID          EMP_EMP_ID_PK        NORMAL               UNIQUE


SQL> select employee_id,last_name,salary from employees where employee_id=100;


Execution Plan
----------------------------------------------------------
Plan hash value: 1833546154

---------------------------------------------------------------------------------------------
| Id  | Operation                   | Name          | Rows  | Bytes | Cost (%CPU)| Time     |
---------------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |               |     1 |    16 |     1   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMPLOYEES     |     1 |    16 |     1   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN         | EMP_EMP_ID_PK |     1 |       |     0   (0)| 00:00:01 |
---------------------------------------------------------------------------------------------

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28536251/viewspace-2139890/,如需轉載,請註明出處,否則將追究法律責任。

相關文章