SQL TRACE 사용 및 결과값 확인 방안

문서 유형
기술 정보
분야
튜닝
키워드
sql_trace
적용 제품 버전
7FS02
7FS02PS

개요

SQL_TRACE는 SQL 실행 시 추적 정보를 기록하여 실행 통계 정보 확인이 가능한 기능입니다. 이 기능을 사용하여 SQL 실행 시 추적 정보를 기록하고 그 결과를 확인하는 방법에 대해 설명합니다.

방법

주의
인스턴스 레벨로 Trace 활성화할 경우, 전체 시스템 성능 저하 가능성이 있습니다.
세션 레벨로 trace 실행을 권고합니다.

관련 파라미터

파라미터명
설명
SQL_TRACE
SQL 추적 기능 활성화 여부 (Y: 활성화, N: 비활성화)

SQL_TRACE 사용 절차

1.
세션의 파라미터 값 변경 후 (SQL_TRACE=Y) 쿼리 수행
$ tbsql sys/tibero SQL> set timing on; SQL> set lines 250; SQL> set rows off; -- SQL_TRACE 활성화 SQL> alter session set sql_trace = y; -- 쿼리 수행 SQL> @query.sql -- SQL_TRACE 비활성화 SQL> alter session set sql_trace = n;
SQL
복사
2.
~.trc 파일을 out 파일로 변환
수행된 쿼리의 Trace 파일(.trc)이 $TB_HOME/instance/$TB_SID/sqltrace 디렉토리에 생성됩니다.
-. Trace 파일 위치 이동 $ cd $TB_HOME/instance/$TB_SID/sqltrace -. Trace 파일을 읽기 쉬운 Out 파일로 변환 $ tbprof tb_sqltrc_13795_186_2104490.trc sqltrace.out
SQL
복사
3.
sqltrace.out 결과 분석
parse : SQL문 파싱에 걸린 시간/자원 사용량
exec : SQL 실행 중 디스크 읽기, 블록 접근, 처리된 로우 수
fetch : 데이터 패치 시 소모된 리소스
[주요 통계 항목]
항목
설명
parse
SQL문이 파싱(구문 분석)되는 단계에 대한 통계
exec
SQL문의 실행 단계에 대한 통계 (DML : Update, Insert, Delete)
fetch
SQL문이 실행되면서 데이터 패치(Fetch) 된 통계
count
SQL문이 파싱/실행/패치가 수행된 횟수
cpu
실제 CPU 사용 시간
elapsed
작업 시작부터 종료까지 실제 소요 시간
current
해당 세션에서 작업 내역을 커밋하지 않아 자신에게만 유효한 블럭을 액세스한 블럭 수 (Update, Insertm Delete 등 변경 작업 시 증가)
query
Select 등 읽기 작업에서 읽은 Consistent Read 블록 수  (메모리 내 변경되지 않은 블럭을 읽거나 다른 세션에 의해 변경되었으나 아직 커밋하지 않아 복사해둔 스냅샷 블럭을 읽은 블럭 수)
disk
디스크에서 읽어온 블록 수
rows
SQL 실행 결과 처리된 최종 행(Row) 수
[실행 정보 확인]