SQL> alter session set sql_trace = true;
SQL> SELECT * FROM emp WHERE empno = 7788;
SQL> SELECT * FROM dual;
SQL> alter session set sql_trace = false;
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)
;
TRACE_FILE
-----------------------------------------------------------
c:\app\manon94\diag\rdbms\orcl\orcl\trace/orcl_ora_2444.trc
SQL> alter session set tracefile_identifier ='manon94'
orcl_ora_2444_manon94.trc
exec dbms_system.set_ev(145,3,10046,12,'');
dbms_monitor.session_trace_enable(
session_id => 145,
serial_num => 3,
waits => true,
binds => true);
end;
/
dbms_monitor.session_trace_disable(
session_id => 145,
serial_num => 3);
end;
/
SQL> alter system set sql_trace = true;
SQL> alter system set sql_trace = flase;
SQL> begin
2 dbms_monitor.serv_mod_act_trace_enable (
3 service_name => 'eCRM' -- 대소문자 구분함
4 ,module_name => dbms_monitor.all_module
5 ,action_name => dbms_monitor.all_actions
6 ,waits => true
7 ,binds => true
8);
SQL> begin
2 dbms_monitor.serv_mod_act_trace_disable (
3 service_name => 'eCRM'
4 ,module_name => dbms_monitor.all_module
5 ,action_name => dbms_monitor.all_actions
8);
C:\Documents and Settings\cbkim>tkprof
Usage: tkprof tracefile outputfile [explain= ] [table= ]
[print= ] [insert= ] [sys= ] [sort= ]
tkprof ora_trace.trc report.prf sys=no
================================================================================
Call Count CPU Time Elapsed Time Disk Query Current Rows
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Parse 1 0.010 0.018 0 70 0 0
Execute 1 0.000 0.000 0 0 0 0
Fetch 9 0.640 0.769 0 42864 0 728
------- ------ -------- ------------ ---------- ---------- ---------- ----------
Total 11 0.650 0.787 0 42934 0 728
Misses in library cache during parse: 1
Optimizer goal: CHOOSE
Parsing user: XXX (ID=182)
Rows Row Source Operation
------- ---------------------------------------------------
0 STATEMENT
...
728 HASH JOIN OUTER (cr=32575 r=0 w=0 time=663883 us)
728 NESTED LOOPS (cr=32529 r=0 w=0 time=654975 us)
728 NESTED LOOPS (cr=31071 r=0 w=0 time=649598 us)
728 NESTED LOOPS (cr=29613 r=0 w=0 time=644591 us)
728 TABLE ACCESS BY INDEX ROWID IT (cr=28155 r=0 w=0 time=637907 us)
946 INDEX FULL SCAN DESCENDING ITIND99 (cr=27330 r=0 w=0 time=633707 us)OF ITIND99 (NONUNIQUE)
항목 | 설명 | |
---|---|---|
call | 커서 상태에 따라 Parse, Execute, Fetch 세 개의 Call로 나누어 각각에 대한 통계정보를 보여줌 \- Parse : 커서를 파싱하고 실행계획을 생성하는 데 대한 통계 \- Execute : 커서의 실행 단계에 대한 통계 \- Fetch : 레코드를 실제로 Fetch하는 데 대한 통계 | |
count | Parse, Execute, Fetch 각 단계가 수행된 횟수 | |
cpu | 현재 커서가 각 단계에서 사용한 cpu time | |
elapsed | 현재 커서가 각 단계를 수행하는 데 소요된 시간 | |
disk | 디스크로부터 읽은 블록 수 | |
query | Consistent 모드에서 읽은 버퍼 블록 수 | |
current | Current모드에서 읽은 버퍼 블록수 | |
rows | 각 단계에서 읽거나 갱신한 처리건수 |
실행 통계 | Call |
---|---|
db block gets | current |
consistent gets | query |
physical reads | disk |
SQL*Net roundtrips to/from client | fetch count |
rows processed | fetch rows |
레벨 | 설명 |
---|---|
레벨1 | Default |
레벨4 | Bind Values |
레벨8 | Waits |
레벨12 | Bind Values & Waits |
Elapsed Time = CPU Time + Wait Time
= Response시점 - Call 시점
* SELECT문 = Parse Call + Execute Call + Fetch Call
* DML문 = Parse Call + Execute Call
wait event | 설명 |
---|---|
SQL*Net message to client | Client에게 메세지 송신후 Client로 부터 메세지 수신 완료 신호가 정해진 시간보다 늦게 도착한 경우 발생 |
db file sequential read | Single Block I/O 시 발생 |
SQL*Net message from client | 오라클 서버 프로세스가 사용자에게 결과를 전달하고 다음 Fetch Call이 올때 까지 대기한 시간을 더한 값 |
SQL*Net more data from client | Client에게 전송할 데이터가 남았는데 네트워크 부하로 전송하지 못할 때 발생하는 대기 이벤트 |
- 강좌 URL : http://www.gurubee.net/lecture/3085
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.