SPATIUM Mobile
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     Android (3)
     Linux (1)
     MacOS (1)
     OS (1)
     Solaris10 (15)
     Windows (1)
     Windows Server (2)
     Windows XP (3)
   ID  
   Password  
  |  
  Location United States
  IP Address 3.149.250.19
2024. 11
12
3456789
10111213141516
1718192021
22
23
24252627282930
Category  Languages, Oracle
Writer 김태우 Date 2015-02-08 23:48:43 Visit 6181
[Oracle Study 3W] Explain Plan, Auto Trace, SQL 트레이스

 

Explane plan

 

- explain plan 명령어를 사용하기 위해 plan_table 생성, ?는 $ORACLE_HOME

sql> @? /rdbms/admin/utlxplan.sql

 

- 오라클 10g 부터는 설치 시 기본적으로 sys.plan_table$ 테이블이 생성됨(public synonym 도 같이)

sql> select * from all_synonyms where synonym_name = 'PLAN_TABLE';

 

- explain plan for 명령을 수행하여, 실행계획을 plan_table에 저장

sql> explain plan set statement='query1' for select * from emp where empno=7900;

 

Auto Trace

 

- 빈번하게 사용되는 도구

sql> set autotrace on select * from emp where empno = 7900;

- 세션 확인, 하나의 세션에서 통계 정보가 정확

sql> @session

 

- Option

a. set autotrace on

    sql을 수행하고 그 결과와 함께 실행계획 및 실행통계를 출력

b. set autotrace on explain

    sql을 수행하고 그 결과와 함께 실행계획을 출력

c. set autotrace on statistics

    sql 을 수행하고 그 결과와 함계 실행통계를 출력

d. set autotrace traceonly

    sql을 수행하고 그 결과는 출력하지 않고 실행계획 및 실행통계를 출력

e. set autotrace traceonly explain

    sql을 수행하지 않고 실행계획만 출력

f. set autotrace traceonly statistics

    sql을 수행하고 그 결과는 출력하지 않고 실행통계만 출력

 

SQL 트레이스 

 

- 가장 많이 사용되는 도구

 

자기 세션에 트레이스 걸기

sql> alter session set sql_trace = true;

sel> select * from emp where empno  = 7900;

sql> alter session set sql_trace = false;

 

- user_dump_dest 파라미터로 지정된 서버 디렉토리 밑에 트레이스 파일(.trc)이 생성, 파일 찾기 스크립트

sql> select r.value || '/' || lower(t.instance_name) || '_ora_' || ltrim(to_char(p.spid)) || '.trc' trace_file

from v$process p, v$session s, v$parameter r, v$instance t where p.addr = s.paddr

and r.name = 'user_dump_dest' and s.sid = (select sid from v$mystat where rownum = 1);

 

Call 통계 컬럼

- call : 커서 상태에 따라 Parse, Execute, Fetch 세 개의 Call로 나누어 통계 정보 출력

- count : Parse, Execute, Fetch 각 단계가 수행된 횟수

- cpu : 현재 커서가 각 단계에서 사용한 cpu time

- elapsed : 현재 커서가 각 단계를 수행하는데 소용된 시간

- disk : 디스크로부터 읽은 블록 수

- query : consistent 모드에서 읽은 버퍼 블록 수

- current : Current 모드에서 읽은 버퍼 블록 수

- rows : 각 단계에서 읽거나 갱신한 처리 건수

 

DBMS_XPLAN 패키지

 

- 실행계획 출력을 좀더 쉽게 보기

- 예상 실행계획 출력, 첫번째 인자는 plan table명, 두번째는 statement_id(null 일때는 가장 마지막 실행계획), 세번째는 포맷

sql> select plan_table_output from table(dbms_xplan.display('plan_table', null, 'serial') );

- 포맷 옵션, BASIC ROW BYTES COST PARTITION .. 등 ALL 옵션을 사용하여 모든 항목을 볼수 있음

 

 

v$sql 분석하여 튜닝 여부 확인

 

Tags  Oracle Study, Explain Plan, Auto Trace, SQL 트레이스
  Relation Articles
[Languages-Oracle] [Oracle Study 4W] 인덱스 (2015-02-24 23:25:15)
[Languages-Oracle] [Oracle Study 3W] Explain Plan, Auto Trace, SQL 트레이스 (2015-02-08 23:48:43)
[Languages-Oracle] [Oracle Study 2W] SQL 처리 과정 (2015-01-28 01:45:22)
[Languages-Oracle] [Oracle Study 1W] Oracle 기본 아키텍처 (2015-01-26 01:06:36)
  Your Opinion
Member ID
150 letters
Copyright (C) SPATIUM. All rights reserved.
[SPATIUM]WebMaster Mail