Oracle Tuning 강좌
10046 Trace의 LEVEL 1 1 99,999+

by 강정식 10046 Trace [2010.06.22]


  • - 일반적으로 SQL_TRACE와 동일하나 레벨에 따라 추가적인 정보 확인이 가능하다.
  • - LEVEL 0 : 트레이스 안 함. SQL_TRACE=false 로 설정한 것과 동일한 효과
  • - LEVEL 1 : 일반적인 SQL 트레이스(SQL_TRACE=true) 정보 제공
  • - LEVEL 4 : SQL TRACE 정보 + BIND 정보 제공
  • - LEVEL 8 : SQL TRACE 정보 + WAIT EVENT 정보 제공
  • - LEVEL 12 : SQL TRACE 정보 + BIND 정보 + WAIT EVENT 정보 제공

LEVEL - 4

  LEVEL 4는 SQL의 Raw Trace와 Bind 변수의 상수값을 함께 보여준다.(Bind변수값을 확인하기 위해서는 직접 TRC파일을 검색하여야 한다.)

  아래는 LEVEL 4의 SQL Trace 결과를 TKPROF로 변환된 결과가 아닌 Trc파일을 이용하여 Binding 값을 확인하는 예제이다.

LEVEL 4의 SQL Trace 생성
 
-- LEVEL 설정
SQL> ALTER SESSION SET EVENTS
     '10046 trace name context forever, level 4';

SQL> VAR B1 VARCHAR2(100);
SQL> VAR B2 VARCHAR2(100);

SQL> EXEC :B1 := '20090101';
SQL> EXEC :B2 := '20090131';

SQL> SELECT *
     FROM  (SELECT EMPNO, JOB, DEPTNO,
                   TO_CHAR(HIREDATE, 'YYYYMMDD') HIREDATE                
            FROM   EMP) EMP_V
     WHERE  EMP_V.HIREDATE BETWEEN :B1  -- 20090101
                           AND     :B2; -- 20090131

 EMPNO JOB    HIREDATE             DEPTNO     
---------- ------ ---------------- ----------     
   7334091 O      20090101                 70     
   7334092 O      20090101                 70     
   .......................................... 
   7334400 O      20090131                 70
   
310 rows selected.

SQL> ALTER SESSION SET SQL_TRACE=FALSE;
SQL> EXIT;
    

Bind변수 값 확인

  아래 그림과 같이 바인드변수 값을 확인 할 수 있다.

LEVEL - 8

  LEVEL 8은 SQL의 Raw TraceWait Event를 함께 보여준다.

  아래는 LEVEL 8 SQL Trace의 Waiting 정보 확인 예제이다. (TKPROF로 변환된 결과로 확인)

 
-- LEVEL 설정
SQL> ALTER SESSION SET EVENTS
     '10046 trace name context forever, level 8';

SQL> SELECT *
     FROM   EMP E
     WHERE  E.EMPNO  = 9999999
     AND    E.DEPTNO = 10

Call     Count CPU Time Elapsed Time       Disk      Query    Current       Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse        1    0.000        0.002          0          0          0          0
Execute      1    0.000        0.000          0          0          0          0
Fetch        1    0.000        0.028          3          4          0          0
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total        3    0.000        0.031          3          4          0          0

Misses in library cache during parse: 1
Optimizer goal: ALL_ROWS
Parsing user: APPS (ID=44)

Rows     Row Source Operation
-------  ---------------------------------------------------
      0  STATEMENT
      0   TABLE ACCESS BY INDEX ROWID EMP (cr=4 pr=3 pw=0 time=28400 us)
      1    INDEX UNIQUE SCAN EMP_U1 (cr=3 pr=2 pw=0 time=22438 us)(Object ID 6485271)

-- Waiting 정보
Wait Event Name                                      Count Wait(sec)  Max Wait
-------------------------------------------------- ------- ---------- --------
db file sequential read                                   3      0.027    0.010
SQL*Net message to client                                 1      0.000    0.000
SQL*Net message from client                               1      0.003    0.003
--------------------------------------------------- ------- --------- --------
Total                                                     5      0.03
    

LEVEL - 12

  LEVEL 12는 SQL의 Raw Trace + Bind 상수값 + Wait Event를 함께 보여준다(Bind변수값을 확인하기 위해서는 직접 TRC파일을 검색하여야 한다.) TKPROF의 결과값은 LEVEL 8 과 같다.

- 강좌 URL : http://www.gurubee.net/lecture/2131

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 참된신자 [2014.08.13 15:48:17]

감사합니다 :)

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입