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#