기술 정보
home
채널 소개
home

AUTOTRACE 사용 및 확인 방안

문서 유형
기술 정보
분야
튜닝
키워드
AUTOTRACE
실행계획
적용 제품 버전
7FS02PS

개요

AUTOTRACE는 쿼리 실행 시 실행 계획(Execution Plan)과 SQL 수행 통계(Statistics)를 자동으로 수집하여 결과를 제공하는 기능으로, 쿼리 수행 시 실행 계획SQL 수행 통계를 자동으로 수집하여 확인할 수 있으며, 쿼리 튜닝 및 성능 진단 시 유용하게 활용 가능합니다.

방법

관련 파라미터

파라미터명
설명
gather_sql_plan_stat
SQL 수행 시 실행 계획(Plan)과 관련 통계 정보를 수집 여부 설정 Y: 수집, N: 미수집

관련 veiw 정보

파라미터명
설명
v$sql_plan
SQL 문장의 실행 계획 정보
v$sysstat
시스템 통계
v$sql_plan_statistics
SQL 문장의 수행 통계 정보
[v$sql_plan]
SQL> desc v$sql_plan COLUMN_NAME TYPE CONSTRAINT ----------------------- ----------------- --------------- HASH_VALUE NUMBER PLAN_HASH_VALUE NUMBER SQL_ID VARCHAR(13) CHILD_NUMBER NUMBER OPERATION VARCHAR(128) OBJECT# NUMBER OBJECT_OWNER VARCHAR(128) OBJECT_NAME VARCHAR(128) OBJECT_TYPE VARCHAR(20) ID NUMBER PARENT_ID NUMBER DEPTH NUMBER POSITION NUMBER SEARCH_COLUMNS NUMBER COST NUMBER CPU_COST NUMBER IO_COST NUMBER CARDINALITY NUMBER PSTART VARCHAR(38) PEND VARCHAR(38) OTHERS VARCHAR(65532) ACCESS_PREDICATES VARCHAR(65532) FILTER_PREDICATES VARCHAR(65532) LPN VARCHAR(128) ADVISED_COLNO VARCHAR(4000)
SQL
복사
[v$sysstat]
SQL> desc v$sysstat COLUMN_NAME TYPE CONSTRAINT ----------------------- ----------------- --------------- STAT# NUMBER NAME VARCHAR(60) CLASS NUMBER VALUE NUMBER
SQL
복사
[v$sql_plan_statistics]
SQL> desc v$sql_plan_statistics COLUMN_NAME TYPE CONSTRAINT ----------------------- ----------------- --------------- HASH_VALUE NUMBER PLAN_HASH_VALUE NUMBER SQL_ID VARCHAR(13) CHILD_NUMBER NUMBER ID NUMBER EXECUTIONS NUMBER LAST_STARTS NUMBER STARTS NUMBER LAST_OUTPUT_ROWS NUMBER OUTPUT_ROWS NUMBER LAST_LEFT_INPUT_ROWS NUMBER LEFT_INPUT_ROWS NUMBER LAST_RIGHT_INPUT_ROWS NUMBER RIGHT_INPUT_ROWS NUMBER LAST_CR_BUFFER_GETS NUMBER CR_BUFFER_GETS NUMBER LAST_ELAPSED_TIME NUMBER ELAPSED_TIME NUMBER LAST_MEM_USAGE NUMBER MEM_USAGE NUMBER LAST_TEMP_SEGMENT_READ_CNT NUMBER TEMP_SEGMENT_READ_CNT NUMBER LAST_TEMP_SEGMENT_WRITE_CNT NUMBER TEMP_SEGMENT_WRITE_CNT NUMBER LAST_CU_BUFFER_GETS NUMBER CU_BUFFER_GETS NUMBER LAST_DISK_READS NUMBER DISK_READS NUMBER
SQL
복사

AUTOTRACE 사용 절차

실행 계획 수집 파라미터 설정 후 쿼리를 수행합니다.
1.
서버 인코딩 설정 (DB의 인코딩이 UTF8 일 시)
$ export LANG=ko_KR.utf8 $ echo $LANG ko_KR.utf8
SQL
복사
2.
TBSQL 접속 및 AUTOTRACE 설정
결과는 autotrace.txt 파일로 저장됩니다.
AUTOTRACE 활성화 : set autot on exp stat plans
실행 계획 수집 설정 : alter session set gather_sql_plan_stat=y
$ tbsql sys/tibero SQL> spool autotrace.txt SQL> alter session set gather_sql_plan_stat=y; SQL> set rows off SQL> set autot on exp stat plans SQL> set timing on SQL> set lines 250 SQL> @query.sql SQL> alter session set gather_sql_plan_stat=n; SQL> spool off
SQL
복사
3.
AUTOTRACE 결과 확인 항목
3.1. 쿼리 수행 시간 , SQL_IDChild numberPlan hash value
3.2. 실행 계획 (Execution Plan)
Cost
V$SQL_PLAN의 COST 컬럼 값으로 하위 플랜 노드의 초 누적된 COST 값
%%CPU
Cost에서 CPU Cost가 차지하는 비율
Rows
Optimizer에서 예측한 플랜 노드 수행 결과 Row 수
3.3. Predicate Information
access : Join predicate, Index access predicate
filter : filter predicate
3.4. Execution Stat (수행 통계)
[SQL 수행정보]
Time (ms)
플랜 노드 수행 시간
Rows
플랜 노드 수행 후 결과 Row 수
Starts
플랜 노드가 전체 SQL를 수행하며 반복 수행된 횟수