首页 > 其他 > 详细

执行计划的查看

时间:2015-03-25 16:47:49      阅读:176      评论:0      收藏:0      [点我收藏+]
explain plan for select * from scott.emp; 
select * from table(dbms_xplan.display)  --要配合 explain 使用

--查询最近执行过的sql 的执行计划,在sqlplus 在执行 前提是目标sql 还有shared pool 中
select * from table(dbms_xplan.display_cursor(null,null,advanced));
select * from table(dbms_xplan.display_cursor(null,null,all));

--查指定sql 的执行计划,前提是目标sql 还有shared pool 中,在sqlplus 在执行
select sql_text,sql_id,hash_value from v$SQL where sql_text like %select * from scott.emp;%;
select * from table(dbms_xplan.display_cursor(b61wnr1gd72gv,0,advanced));
select * from table(dbms_xplan.display_cursor(b61wnr1gd72gv,0,all));


--手动收集 AWR 报告 
call dbms_workload_repository.create_snapshot();

--清空 shared pool  
alter  system flush shared_pool;

--select * from scott.emp;  查询已不在 shared pool 中了
select sql_text,sql_id,hash_value,child_number from v$SQL where sql_text like %select * from scott.emp;%;


--可以用如下方法查目录SQL 的历史 执行计划,前提是要知道 sql_id 
select * from table(dbms_xplan.display_awr(b61wnr1gd72gv));


--10046 事件, 可以 spool 出来
oradebug setmypid;
oradebug event 10046 trace name context forever,level 12;
select *from scott.dept;
oradebug tracefile_name;  --找到路径及名称 
oradebug event 10046 trace name context off;


--在cmd 命令中 用 tkprof 格式化
tkprof d:\app\administrator\diag\rdbms\orcl\orcl\trace\orcl_ora_9396.trc f:\emp.txt


-- 安装 xplan 包后查看执行计划,可以显示出执行计划的执行顺序,而不是肉眼去观察
1、执行目标sql select puid,prid,puname,pucred from scott.provuser where puid=100234
2、查询目标sql 的 sql_id,child_number
select sql_text,sql_id,hash_value,child_number from v$SQL where sql_text like %puid,prid,puname%;
select sql_text,sql_id,hash_value,child_number from v$sql order by last_load_time desc 

--v$sql 中有child_number    v$sqlarea 中无
select sql_text,sql_id,hash_value from v$SQLarea where sql_text like %puid,prid,puname%;
select sql_text,sql_id,hash_value from v$SQLarea order by last_load_time desc 

--3、查看执行计划
select * from table(xplan.display_cursor(0va10m19a4xaz,0,advanced))



select ename,sal from scott.emp a where deptno in (select deptno from scott.dept b where loc=NEW YORK)
select * from v$sql order by last_load_time desc 
select * from table(xplan.display_cursor(gm28940mxxnst,0,all))

 

执行计划的查看

原文:http://www.cnblogs.com/tianmingt/p/4366056.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!