반응형

AUTOTRACE(P.158~P.160)
1. AUTOTRACE 설치
 - AUTOTRACE 강점은 단순함이다. 일단 DBA가 AUTOTRACE를 설정하면 모두가 이를 이용할 수 있다. 필자는 다음과 같은 방법으로 AUTOTRACE를 설치한다.
 
 1)cd $ORACLE_HOME/rdbms/admin 명령을 수행한다.

 2) CREATE TABLE과 CREATE PUBLIC SYNONYM 권한을 가진 사람(예를 들면, DBA)으로 SQL*Plus에 로그인한다.

 3) (EXPLAIN PLAN에 관한 절의 앞쪽에 기술된 것처럼) PLAN_TABLE을 모두에게 공개한다.

 4) SQL*Plus를 빠져나와 cd $ORACLE_HOME/sqlplus/admin을 실행한다.

 5) SYSDBA로 SQL*Plus에 로그인한다.(sqlplus "/ as sysdba").

 6) SQL>@plustrace을 실행한다.

 7) SQL> grant plustrace to public을 실행한다.

 이와 같은 과정을 거치면 누구라도  SQL*Plus를 사용하여 추적할 수 있으며 누구라도 예외 없이 AUTOTRACE를 이용할 수 있다. 결국 개발자에게 자신들의 코드를 튜닝하지 않아도 될 구실을 주지 않게 된다.(그러나 원한다면 public을 일부 사용자로 대체할 수도 있다.)

2. AUTOTRACE 사용
 - AUTOTRACE는 모든 SQL DML문(예를 들면, INSERT, UPDATE, DELETE, SELECT, 그리고 MERGE)이 실행된 후에 보고서를 생성한다. SQL*Plus에서 다음과 같은 SET 명령을 이용하여 이 보고서를 제어할 수 있다.

 1) SET AUTOTRACE OFF
 
- 쿼리는 정상적으로 실행되지만 AUTOTRACE 보고서가 생성되지 않는다. 이것이 기본이다.

 2) SET AUTOTRACE ON EXPLAIN
 - 쿼리가 정상적으로 실행되고 AUTOTRACE 보고서에는 최적화기의 실행 경로만 나타난다.

 3) SET AUTOTRACE ON STATISTICS
 - 쿼리가 정상적으로 수행되고 AUTOTRACE 보고서에는 SQL문의 실행 통계만 나타난다.

 4) SET AUTOTRACE ON
 - 쿼리가 수행되고 AUTOTRACE 보고서에는 최적화기의 실행 경로와 SQL문의 실행 통계가 모두 포함된다.

 5) SET AUTOTRACE TRACEONLY
 - SET AUTOTRACE ON과 유사하지만 사용자의 쿼리 출력(이 있다면 이것)을 인쇄하지 않는다. 이 기능은 굉장히 큰 결과 집합을 클라이언트에 반환하는 쿼리를 튜닝하는 데 유용하다. 1,000개의 행이 인쇄되어 화면에 흐르는 동안(일반적으로 실제 쿼리를 실행하는 시간보다 더 오래 걸린다.) 기다리는 대신 이 표시를 억제할 수 있다.

 6) SET AUTOTRACE TRACEONLY STATISTICS
 
- SET AUTOTRACE TRACEONLY와 같지만 쿼리 계획을 표시하지 않으며 실행 통계만을 보여 준다.

 7) SET AUTOTRACE TRACEONLY EXPLAIN
 - SET AUTOTRACE TRACEONLY와 같지만 실행 통계의 표시를 생략하며 쿼리 계획만을 보여 준다. 게다가 SELECT문의 경우에는 실제로 이 쿼리를 실행하지 않고 쿼리를 파싱한 후 설명만 해 준다. 이 모드에서는 INSERT, UPDATE, DELETE, 그리고 MERGE문은 모두 실행되지만 SELECT문은 다르게 처리된다.

http://www.gurubee.net/display/DBSTUDY/AUTOTRACE
 
http://code.google.com/p/arctos/source/browse/arctos/DDL/admin/plustrace.sql?r=17383
 
http://support.dbworks.co.kr/?mid=oracle_tech_Mag&page=3&listStyle=gallery&document_srl=583
 
http://arctos.googlecode.com/svn-history/r17383/arctos/DDL/admin/plustrace.sql
반응형