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:appadministratordiag dbmsorclorcl raceorcl_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'))