SQL 추적 파일의 활용

1. SQL 튜닝
2. 특정 구간 및 시점 문제점 파악
: SQL 추적 파일에는 SQL 수행 정보가 순차적으로 기록되므로 이를 이용하여 특정 구간 및 시점의 문제점
( 바인드 변수 ORA-0001 : unique constraint violated 확인 )
3. 수행 SQL 수집
: SQL 관리와 액세스 패스 파악을 통한 인덱스 생성 및 튜닝에 활용

  • 가. ALTER 명령 사용

    ALTER [ SESSION | SYSTEM ] SET SQL_TRACE = [ TRUE | FALSE ];
    
    ALTER [ SESSION | SYSTEM ] SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL n';
    
    ALTER [ SESSION | SYSTEM ] SET EVENTS '10046 TRACE NAME CONTEXT OFF';

    -- SQL_TRACE 방법은 LEVEL 1로만 SQL  추적 파일 생성    
    -- SQL  추적 파일 생성
    ALTER SESSION SET SQL_TRACE = TURE ; 
    ALTER SYSTEM SET SQL_TRACE = TURE; 
    
    -- SQL  추적 파일 해제
    ALTER SESSION SET SQL_TRACE = FALSE ; 
    ALTER SYSTEM SET SQL_TRACE = FALSE; 
    
        
    -- SQL_TRACE 방법은 LEVEL 1로만 SQL  추적 파일 생성    
    -- SQL  추적 파일 생성
    ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
    ALTER SYSTEM SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 12';
    
    -- SQL 추적 파일 해제
    ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT OFF';
    ALTER SYSTEM SET EVENTS '10046 TRACE NAME CONTEXT OFF';
       
    -- 파일 Header를  '10046_TRACE' 설정, 파일 크기 무제한으로 레벨 4로 SQL 추적 파일 생성 예
    ALTER SESSION SET TRACEFILE_IDENTIFIER='10046_TRACE' ;
    ALTER SESSION SET TIMED_STATISTICS = TRUE ;
    ALTER SESSION SET MAX_DUMP_FILE_SIZE=UNLIMITED ;
    ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 4';

  • 나. 초기화 파라미터 설정
    
    SQL_TRACE = [ TRUE | FALSE ]
    
    EVENT ="10046 trace name context forever,level 12"

  • 다. DBMS_SYSTEM 패키지 사용
        
    -- 다른 세션의 SQL 에 대한 SQL 추적 파일 설정 
    -- DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION ==> LEVEL 1 만 가능 
    DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#, TRUE | FLASE)
    
    EXEC DBMS_SYSTEM.SET_EN(sid,serial#,10046,level#,'')

  • SQL 추적 파일 생성 시, 설정 레벨
    1 - SQL 수행 정보
    4 - 레벨 1 + 바인드 변수
    8 - 레벨 1 + 대기 이벤트
    12 - 레벨 1 + 바인드 변수 + 대기 이벤트
  • SQL 추적 파일 생성 시, 고려 파라미터
    TIMED_STATISTICS = 추적 파일에 기록될 정보에 수행 시간 관련 정보 포함 여부 결정, 반드시 TRUE 로 설정 한다.
    MAX_DUMP_FILE_SIZE = 추적 파일 최대 크기 지정, 공간 여유 확인 후, UNLIMITED 로 설정 한다.
  • 파일 생성 단위
  • 세션 - 설정된 세션에서 수행된 SQL에 대한 SQL 추적 파일 생성
  • 시스템 - 모든 세션에서 수행된 SQL에 대한 SQL 추적 파일 생성
  • 파일 생성에 따른 부하
  • SQL 수행 정보 기록 부하
  • 파일 생성 및 기록 시 디스크 I/O 부하