Oracle中有很多查看SQL执行计划的方法,先来看最简单的方法。
如果使用PL/SQL Developer,而直接按F5就会出来对应SQL的执行计划。
如果使用sqlplus,则使用如下方法获取的执行计划与以上使用PL/SQL Developer获取的执行计划相同。
SQL> explain plan for select employee_id,last_name,salary from employees where employee_id=100;
Explained.
SQL> select * from table(dbms_xplan.display);
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
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 |
---------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
----------------------------------------------------------------------------------------------------
---------------------------------------------------
2 - access("EMPLOYEE_ID"=100)
14 rows selected.