AutoTrace (161p ~ 164p)

(1) AutoTrace Example

  • AutoTrace 수행 결과에 SQL을 튜닝하는데 유용한 정보들을 많이 포함하고 있어 가장 즐겨 사용되는 도구 중 하나임.

(2) AutoTrace Option

  • AutoTrace 옵션 조합에 따라 필요 부분만 출력 가능
No.option실제수행수행 결과실행계획실행 통계
①set autotrace onOOOO
②set autotrace on explainOOO
③set autotrace on statisticsOOO
④set autotrace traceonlyOOO
⑤set autotrace traceonly explainO
⑥set autotrace traceonly statisticsOO

①~③ 수행결과를 출력하므로 실제 수행
④, ⑥ 실행통계를 출력하므로 실제 수행
⑤ 실행계획만 출력하므로 가장 빠름

(3) AutoTrace 실행 권한

  • 실행계획 확인은 plan_table만 생성돼어 있으면 가능
  • 실행통계까지 함께 확인하려면 v _$sesstat, v _$statname, v _$mystat 뷰 읽기 권한 필요함.
  • dba, select_catalog_role 등의 롤(Role)이 없는 일반 사용자들은 별도의 권한 설정이 필요하다.
  • plustrace 롤 생성 후 필요한 사용자에게 이 롤을 부여하는 것이 관리상 편리함.

sQL> @?/sqlplus/admin/plustrce.sq1
sQL> grant plustrace to scott;

h3.(4) AutoTrace 와 세션

  • statistics 모드로 AutoTrace를 활성화시 새로운 세션을 통해 현재 세션의 통계정보를 대신 쿼리해서 보여줌.
  • 쿼리를 실행 전 현재 세션의 수행통계 정보를 어딘가에 저장했다가 쿼리 실행 후 수행통계와의 델타(Delta, 변화량)값을 계산해 보여주는 방식
  • 만약 같은 세션에서 수행한다면 세션통계를 쿼리할 때의 수행통계까지 뒤섞이기 때문에 별도의 세션을 사용함.

0) 최초 세션은 1개


SQL> @session
USERNAME OSUser@Terminal PROGRAM STATUS LoginTIM SID SERIAL# OSPID
--------- ------------- --------- ------ ------- ---- ---- -----
ORAKING oraking@SHCHO sqlplus.exe ACTIVE 08:49:37  13  3309  11546

1) statistics 옵션을 활성화시 신규 세션 추가


SQL> set autotrace on statistics
SQL> @session
USERNAME OSUser@Terminal PROGRAM STATUS    LoginTIM SID SERIAL# OSPID
--------- ------------- --------- ------    ------- ---- ---- -----
ORAKING oraking@SHCHO sqlplus.exe ACTIVE   08:49:37 13 3309 11546
ORAKING oraking@SHCHO sqlplus.exe INACTIVE 09:32:30 22 1460 11592

2) explain 모드 변경시 신규 세션 종료


SQL> set autotrace on explain
SQL> @session
USERNAME OSUser@Terminal PROGRAM STATUS    LoginTIM SID SERIAL# OSPID
--------- ------------- --------- ------    ------- ---- ---- -----
ORAKING oraking@SHCHO sqlplus.exe ACTIVE   08:49:37 13 3309 11546

3) statistics 옵션을 활성화시 내부적으로 수행되는 SQL문


SELECT PT.VALUE FROM SYS.V_$SESSTAT PT
WHERE PT.SID=:1
-- AND PT.STATISTIC# IN (7,40,41,42,115,236,237,238,242,243) -- 9i
AND PT.STATISTIC# IN (7,47,50,54,134,335,336,337,341,342) -- 10g
ORDER BY PT.STATISTIC#