AUTOTRACE(이펙티브 오라클에서 발취, 정보문화사, TOMAS KTYE저)
개발 및 관리/Oracle 9i, 10g, 11g, 12c, 19c 2012. 2. 13. 23:41AUTOTRACE(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
'개발 및 관리 > Oracle 9i, 10g, 11g, 12c, 19c' 카테고리의 다른 글
단일행 CASE 표현의 종류, SQL전문가 가이드 p. 242 (0) | 2012.03.28 |
---|---|
ORA-16038, ORA-19809, ORA-00312 (0) | 2012.03.20 |
Static vs. Dynamic SQL (0) | 2012.02.13 |
ORA-27100 Shared Memory Realm Already Exist (0) | 2011.11.16 |
DBLS, Effective Oracle (0) | 2011.11.16 |