by-nc-sa     개발자, DBA가 함께 만들어가는 구루비 지식창고!

Auto Trace




AutoTrace는 어디에 쓰오?

Auto Trace는 옵션에 따라서 퀴리수행결과, 실행계획, 실행통계를 선택적으로 출력할 수 있어서, SQL을 튜닝하는데 유용하다.
(쿼리수행결과, 실행통계는 실제로 수행해봐야 알수있는 결과고, 실행계획은 예측 결과)

SQL> set autotrace on
SQL> select *
  2  from emp where empno=7900;

     EMPNO ENAME      JOB              MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- -------- ---------- ---------- ----------
      7900 JAMES      CLERK           7698 81/12/03        950                    30


Execution Plan
----------------------------------------------------------
Plan hash value: 2949544139

--------------------------------------------------------------------------------------
| Id  | Operation                   | Name   | Rows  | Bytes | Cost (%CPU)| Time     |
--------------------------------------------------------------------------------------
|   0 | SELECT STATEMENT            |        |     1 |    37 |     1   (0)| 00:00:01 |
|   1 |  TABLE ACCESS BY INDEX ROWID| EMP    |     1 |    37 |     1   (0)| 00:00:01 |
|*  2 |   INDEX UNIQUE SCAN         | PK_EMP |     1 |       |     0   (0)| 00:00:01 |
--------------------------------------------------------------------------------------

Predicate Information (identified by operation id):
---------------------------------------------------

   2 - access("EMPNO"=7900)


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

옵션에 따라 머가 다른데?

  실제수행여부 수행결과 실행계획 실행통계
set autotrace on O O O O
set autotrace on explain              O O O  
set autotrace on statistics           O O   O
set autotrace on traceonly O   O O
set autotrace on traceonly explain     O  
set autotrace on traceonly statistics O     O
  • 실행계획 확인만 하려면 plan_table만 있음되고, 실행통계까지도 볼라면 v_$sesstat, v_$statname, v_$mystat에 대한 읽기권한도 있어야함.
  • 수행결과, 실행통계를 출력하려면, 실제수행을 해야함. 실행계획만 보려면 실제 수행 안해도 됨.
  • statistics모드로 AutoTrace를 활성화시키면, 새로운 세션이 하나 열리면서 현재 세션의 통계정보를 대신 쿼리해서 보여줌.

문서에 대하여

  • 최초작성자 : [오정희]
  • 최초작성일 : 2009년 11월 23일
  • 이 문서는 오라클클럽 코어 오라클 데이터베이스 스터디 모임에서 작성하였습니다.
  • 이 문서의 내용은 (주)비투엔컬설팅에서 출간한 '오라클 성능 고도화 원리와 해법I'를 참고하였습니다.

문서정보

Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.