[ORACLE] Sql trace

Hengki's Oracle 2010. 5. 6. 15:16 |
1. Sql trace 은?
- SQL Trace는 실행되는 SQL문의 실행통계를 세션별로 모아서 트레이스 파일을 만듭니다.
- SQL Trace는 세션과 인스턴스 레벨에서 SQL문장들을 분석 할 수 있습니다. 
- SQL Trace에 의해 생성된 파일의 확장자는 .TRC 입니다. 
- .TRC파일은 직접 읽을수가 없으므로 반드시 TKPROF 유틸리티를 실행 시켜야 합니다. 
- init.ora파일에서 SQL Trace를 지정하여 인스턴스 레벨로 Trace를 수행시키면 전체적인 수행능력이 20~30% 정도 감소합니다.


2. SQL Trace에서 제공하는 정보
- parse, execute, fetch count  : 오라클의 SQL 처리 작업에서 parse,execute,fetch 작업들이 처리된 횟수
- 수행된 CPU 프로세스 시간과 경과(Elapsed)된 질의 시간들 : SQL문을 실행하는데 소비된 CPU시간과 실질적인 경과시간
- 물리적(Disk)/논리적(Memory) 읽기를 수행한 횟수 : 질이의 parse, execute, fetch 부분들에 대해 디스크에 있는 데이터파일들로부터 읽은 데이터 블록들의 전체 개수
- 처리된 로우수 : 결과 set을 생성하기 위해 오라클에 의해 처리된 행의 전체 개수
- 라이브러리 캐쉬 miss : 분석된 문장이 사용되기 위해  라이브러리 캐쉬 안으로 로드되어야 하는 횟수  


 3. SQL Trace와 관련된 파라미터
- TIMED_STATISTICS 
    RDBMS가 추가적인 CPU시간, 실행시간등을 모을수 있게 합니다. 
    이 시간통계는 SQL악성 여부를 판단하는 중요한 요소가 됩니다. 
    ALTER SESSION SET TIMED_STATISTICS=TRUE 또는 init.ora파일에 설정
- SQL_TRACE : SQL Trace의 수행여부
    ALTER SESSION SET sql_trace=TRUE 또는 init.ora파일에 설정
- USER_DUMP_DEST : Trace파일이 생성되는 디렉토리를 지정 합니다.  
- MAX_DUMP_FILE_SIZE : 트레이스파일의 최대 크기(단위: OS블럭수)


4. SQL Trace 실행 방법 
1. ALTER SESSION SET SQL_TRACE=TRUE; 
2 .EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(TRUE) 
3. EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(session_id, serial_id, TRUE) 
4. Init parameter 설정: SQL_TRACE = TRUE



Posted by hengki

댓글을 달아 주세요