[Oracle] 쿼리 수행 후 실행 통계 확인 (SET AUTOTRACE ON STATISTICS)

728x90

 

SET AUTOTRACE ON STATISTICS

이 설정은 SQL*Plus나 SQL Developer에서 실행 시,

  • 쿼리의 실행 결과와
  • 쿼리 수행 후의 통계 정보(statistics) 를 보여주는 옵션입니다.

즉, 실행 계획(EXPLAIN PLAN) 대신 실제 수행 시점의 리소스 사용량 (실행 통계) 을 확인할 수 있습니다.

  • AUTOTRACE는 내부적으로 TKPROF보다 간략한 통계만 제공합니다.
  • AUTOTRACE 통계는 현재 세션 기준 누적이 아닌, 해당 SQL 한 번의 실행 기준입니다.
  • consistent gets와 physical reads는 버퍼 캐시 효율을 판단하는 핵심 지표입니다.
SET AUTOTRACE ON STATISTICS;

SELECT * FROM emp WHERE deptno = 10;

결과 예시

     EMPNO ENAME      SAL
---------- ---------- ----------
      7782 CLARK      2450
      7839 KING       5000
      7934 MILLER     1300

3 rows selected.

Statistics
----------------------------------------------------------
          0  recursive calls
          0  db block gets
          8  consistent gets
          0  physical reads
          0  redo size
       1396  bytes sent via SQL*Net to client
        519  bytes received via SQL*Net from client
          2  SQL*Net roundtrips to/from client
          0  sorts (memory)
          0  sorts (disk)
         14  rows processed

 

 

recursive calls

  • 내부적으로 오라클이 수행한 SQL 호출 횟수
  • 예: 데이터 딕셔너리 조회, 시퀀스 증가 등

db block gets

  • 커밋되지 않은 블록을 Current Mode로 읽은 횟수
  • 주로 DML 시 증가 (블록 변경 목적)

consistent gets

  • 커밋된 데이터를 보기 위해 Consistent Read한 횟수
  • SELECT 시 주로 증가

physical reads

  • 디스크에서 직접 읽은 블록 수
  • 캐시에 없을 경우 발생 (I/O 비용)

redo size

  • redo log에 기록된 바이트 수
  • DML 수행 시 증가

bytes sent via SQL*Net to client

  • 클라이언트로 보낸 데이터 양
  • 결과 행의 크기 반영

bytes received via SQL*Net from client

  • 클라이언트로부터 받은 데이터 양
  • 바인드 변수 등

SQL*Net roundtrips to/from client

  • 클라이언트와의 통신 왕복 횟수
  • 네트워크 병목 원인 파악용

sorts (memory)

  • 메모리 내에서 정렬 수행 횟수
  • ORDER BY, GROUP BY 등

sorts (disk)

  • 메모리 초과로 인해 TEMP 영역에서 정렬 수행 횟수
  • TEMP 사용 여부 판단에 중요

rows processed

  • 처리된 행(row)의 개수
  • 실제 fetch된 레코드 수

옵션 비교 요약

set autotrace on						-- 실행결과 O + 실행계획(exp) + 통계정보(stat)
set autotrace on explain 				-- 실행결과 O + 실행계획(exp)
set autotrace on statistics 			-- 실행결과 O +               + 통계정보(stat)
(=set autot on stat)

set autotrace traceonly					-- 실행결과 X + 실행계획(exp) + 통계정보(stat)
set autotrace traceonly explain			-- 실행결과 X + 실행계획(exp) + 
set autotrace traceonly statistics		-- 실행결과 X +               + 통계정보(stat)
(=set autot trace stat)

 

728x90