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都會觸發一此硬解析,所以不能再繁忙期或者頻繁的執行。