| 0 | SELECT STATEMENT | | 1 | 133 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| BOOK_INFO | 1 | 133 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_BOOK_BOOK_INFO_ID | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
2 - access("ID"=10270)
SQL> explain plan set statement_id='t1' for select * from book_info where id=20360;
SQL> select * from table(dbms_xplan.display(null,'t1'));
PLAN_TABLE_OUTPUT
Plan hash value: 1409354130
----------------------------------------------------------------------------------------------------
| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |
----------------------------------------------------------------------------------------------------
| 0 | SELECT STATEMENT | | 1 | 133 | 2 (0)| 00:00:01 |
| 1 | TABLE ACCESS BY INDEX ROWID| BOOK_INFO | 1 | 133 | 2 (0)| 00:00:01 |
|* 2 | INDEX UNIQUE SCAN | PK_BOOK_BOOK_INFO_ID | 1 | | 1 (0)| 00:00:01 |
----------------------------------------------------------------------------------------------------
Predicate Information (identified by operation id):
PLAN_TABLE_OUTPUT
2 - access("ID"=20360)
关于format参数:
select * from table(dbms_xplan.display(null,null,'basic'));
3.AWR
由于10g以后自动安装AWR收集信息,所以可以通过dbms_xplan包提供的display_awr函数来查看AWR抽取SQL的计划。
这里是通过sql_id参数传入的进行查看。
举例:
select * from table(dbms_xplan.display_awr('xxxxxxxx'));
这里初步介绍下,就不再深入各个参数。
4.事件跟踪,比如10046,10053等
sql_trace
会话跟踪alter session set sql_trace=true;--跟踪当前会话,false为结束跟踪
当然也可以跟踪其他会话的
select sid,serial#,username from v$session.......根据自己需求查出sid,serial#,进行下一步跟踪
exec dbms_system.set_sql_trace_in_session(sid,serial#,true); --开始
exec dbms_system.set_sql_trace_in_session(sid,serial#,false) ; --结束
alter session set events '10046 trace name context forever,level 12';