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'))