문서유형ㅣ기술정보
분야ㅣ 튜닝
적용제품버전ㅣ 7FS02PS
문서번호ㅣ TTUTI001
개요
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)
[v$sysstat]
SQL> desc v$sysstat COLUMN_NAME TYPE CONSTRAINT ----------------------- ----------------- --------------- STAT# NUMBER NAME VARCHAR(60) CLASS NUMBER
[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
AUTOTRACE 사용 절차
실행 계획 수집 파라미터 설정 후 쿼리를 수행합니다.
1. 서버 인코딩 설정 (DB의 인코딩이 UTF8 일 시)
$ export LANG=ko_KR.utf8 $ echo $LANG ko_KR.utf8
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
3. AUTOTRACE 결과 확인 항목
3.1. 쿼리 수행 시간 , SQL_ID, Child number, Plan 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를 수행하며 반복 수행된 횟수 |
