RDB/Oracle

oracle sql trace (10053)

세모데 2019. 9. 29. 00:30

optimizer가 SQL 파싱동안 선택하는 실행계획에 대한 trace 

 

1. 기존방식

alter session set max_dump_file_size=unlimited;

alter session set tracefile_identifier='10053_trace_test';

alter session set events ‘10053 trace name context forever, level 1’;

select sysdate from dual;

alter session set events ‘10053 trace name context off’;

 

trace 디렉토리에서 ~10053_trace_test~ 파일 찾아서 확인

 

2. diag 함수사용

v$sql 영역에서 사용된 SQL를 찾아 해당 쿼리에 대한 10053 sql trace 

 

column sql_text format a30

select sql_id from v$sql where sql_text like 'select sysdate from dual%';

execute dbms_sqldiag.dump_trace(p_sql_id=>'7h35uxf5uhmm1', p_child_number=>0,p_component=>'Compiler',p_file_id=>'DIAG');

 

3. 기타

alter session set events 'trace[rdbms.SQL_Optimizer.*][sql:9rjmrhbjuasav]';

select * from dual;

alter session set events 'trace[rdbms.SQL_Optimizer.*]off';