查看整个存储过程的执行计划

通过对session进行trace的方式查看。

 

1、获取当前sessionsidserial#


select sid,serial# from v$session
where sid in (select sid from v$mystat)

2、他通过sid获取操作系统的pid

select p.spid

from v$session s,v$process p

where s.paddr=p.addr

and s.sid=3214

;

3、对session进行trace

exec dbms_system.set_sql_trace_in_session(3214,48681,true);

4、在3214 session 下执行存储过程

var o_result_flag varchar2(200);

var o_error_msg varchar2(200);

declare

 

begin

xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx('20200706','20070706',:o_result_flag ,:o_error_msg);

end;

/

5、关闭对sessiontrace

exec dbms_system.set_sql_trace_in_session(3214,48681,false);

 

6、找到对应的trc文件

cd $ORACLE_BASE/diag/rdbms/iltdb/iltdb/trace

ora_xxxx文件即是。其中xxxx即为步骤2中查询出来的pid

7、对trc文件进行格式转换

tkprof ora_xxxx.trc ora_xxxx.txt

 

 

最终的ora_xxxx.txt中包含了整个存储过程的执行计划。

posted @ 2020-07-07 13:36  Mike张  阅读(1162)  评论(0)    收藏  举报