본문 바로가기
DB & SQL

[oracle] SQL 성능 진단 - 10046 Event 트레이스

by akasha.park 2023. 3. 24.

# 10046 Event 트레이스
Oracle 7.3 이상 버전에서 사용할 수 있는 SQL Trace 생성 이벤트  
실행한 SQL 에 대해서 실행 계획 및 SQL 실행 에 따른 여러 Resource 의 사용정보 및 실행에 사용한 Bind 정보, 실행과정에서 발생되는 Wait Event 정보를 기록합니다.

alter session set events '10046 trace name context forever, level 1' ;

 

alter session set events '10046 trace name context off' ;

설정할 수 있는 레벨 값은 1, 4, 8, 12

10046 트레이스를 4 이상으로 설정하면 트레이스 파일이 급격하게 커지므로 모니터링후에 반드시 이벤트 트레이스  정지할 것 

 

 

#다른 세션에 10046 트레이스 걸기
SQL> exec dbms_system.set_ev (세션ID, Serial 번호, 10046, level, '') ;  --9i
SQL> exec dbms_system.set_ev (145, 3, 10046, 0, '') ;  --트레이스  해제 (level 0으로 설정)

 
--10g 이후는 dbms_monitor 패키지 사용
SQL> begin
          dbms_monitor.session_trace_enable (
              session_id => 145,
              serial_num => 3,
              waits => TRUE,
              binds => TRUE);
        end ;
        /

--10g 이후 10046 트레이스 해제 :  session_trace_diable 프로시저를 사용
SQL> begin
          dbms_monitor.session_trace_disable (
              session_id => 145,
              serial_num => 3 ) ;
       end ;
       /

 

# Service, Module, Action 단위로 트레이스 걸기
dbms_application_info.set_module 
WAS에서 커넥션을 얻을 때마다 호출되는 공통 모듈 내에 추가시켜주는 것이 좋다.