如何查看共享池中不存在的执行计划
2013-07-13 23:26
323 查看
我们一般会用select * from table(dbms_xplan.display_cursor('c0q6wv27b51yh'));来查看sql语句实际执行时的执行计划。但是要知道这个sql有个前提,就是执行计划还存在于共享池中,而共享池是不断被置换的,一段时间后这个执行计划就可能查不到了,上面的语句查出来的结果可能就是:
SQL_ID: c0q6wv27b51yh, child number: 0 cannot be found
说明该sql的执行计划已经被置换出共享池!!!!
此时就需要从AWR报告中抽出sql的执行计划:
select * from table(dbms_xplan.display_awr('c0q6wv27b51yh'));
注意这里的前提是sql_id要知道,但是sql被置换出了内存,那么v$sql,v$sqlaera是查不到该sql的,这是你需要用到下面的几个视图:
Dba_Hist_Sqltext
Dba_Hist_Sqlstat
Dba_Hist_Snapshot
SQL_ID: c0q6wv27b51yh, child number: 0 cannot be found
说明该sql的执行计划已经被置换出共享池!!!!
此时就需要从AWR报告中抽出sql的执行计划:
select * from table(dbms_xplan.display_awr('c0q6wv27b51yh'));
注意这里的前提是sql_id要知道,但是sql被置换出了内存,那么v$sql,v$sqlaera是查不到该sql的,这是你需要用到下面的几个视图:
Dba_Hist_Sqltext
Dba_Hist_Sqlstat
Dba_Hist_Snapshot
相关文章推荐
- 如何查看执行计划
- 如何查看SQL server 执行计划
- 如何查看执行计划
- 如何查看执行计划
- 如何查看执行计划
- 如何查看数据库执行计划
- Oracle优化——如何查看语句的准确的执行计划(explain plan可能不是真实的)
- 如何启用AutoTrace 查看SQL执行计划
- 如何查看oracle sql执行计划
- 如何查看曾经执行的SQL的执行计划
- 【转】如何查看oracle sql执行计划
- 如何查看oracle的执行计划
- oracle 执行计划(一) 如何查看执行计划
- 如何查看oracle sql执行计划
- 在oracle 查看执行计划及如何看懂执行计划.
- 如何查看执行计划
- mysql中如何查看优化器优化后的执行计划
- 简介如何查看执行计划以及执行计划的准确性
- oracle 如何查看执行计划
- 如何查看执行计划