SPATIUM Mobile
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     ADK (3)
     android (3)
     ASP (5)
     ASP.Net (1)
     C# (5)
     HTML (9)
     JAVA (7)
     JavaScript (9)
     jQuery (5)
     Mobile Web (2)
     node.js (1)
     Oracle (8)
     PHP (7)
     Spring Framework (4)
     SQL (17)
     WPF (5)
   ID  
   Password  
  |  
  Location United States
  IP Address 18.217.4.250
2024. 11
12
3456789
10111213141516
1718192021
22
23
24252627282930
Category  Languages, Oracle
Writer 김태우 Date 2015-02-08 23:48:43 Visit 6179
[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