10053 trace跟踪文件sql
能够经过alter session set event 来建立,可是前提是这条SQL被真正执行过。session
常见建立方法:ide
alter session set tracefile_identifier='mytrace';性能
alter session set events '10053 trace name context forever';优化
select * from emp where ename='scott';component
alter session set events '10053 trace name context off';io
到了11g 对于10053有了优化,因此以上建立方法还能够是:event
alter session set tracefile_identifier='mytrace'; 建立trace标识符file
alter session set events 'trace [sql_compiler.*]';select
select * from emp where name='scott';
alter session set events 'trace [sql_compiler.*] off'; 退出10053 trace.
可是有的场景是不容许你执行sql的,好比sql是修改数据的,或者sql很大对性能有影响,或者没有执行权限。这个时候咱们能够使用dbms_sqldiag.dump_trace来实现,具体方法以下:
begin
dbms_sqldoag.dump_trace(p_sql_id=>'',
p_child_number=>0,
p_component=>'compiler',
p_file_id=>'mytrace');
end;
/
可是注意的是每次执行 dbms_sqldoag.dump_trace都会触发一此硬解析,所以不能再繁忙期或者频繁的执行。