* trace
--alter session set timed_statistics=true;
alter session set sql_trace=true;
alter session set sql_trace=false;
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(123,1234,TRUE);
EXECUTE DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(123,1234,FALSE);
--EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid=>123, serial#=>1234, sql_trace=>TRUE);
--EXEC DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid=>123, serial#=>1234, sql_trace=>FALSE);
* 10046 trace( 0: 트레이스 안함, 1: 일반 trace, 4: 바인드변수값, 8: 대기이벤트, 12: 바인드변수 & 대기이벤트)
ALTER SESSION SET EVENTS '10046 trace name context forever, level 8';
ALTER SESSION SET EVENTS '10046 trace name context off';
EXECUTE DBMS_SYSTEM.SET_EV(123,1234,10046,8,'');
EXECUTE DBMS_SYSTEM.SET_EV(123,1234,10046,0,'');
--EXEC DBMS_SYSTEM.SET_EV(si=>123, se=>1234, ev=>10046, le=>8, nm=>’ ’);
--EXEC DBMS_SYSTEM.SET_EV(si=>123, se=>1234, ev=>10046, le=>0, nm=>’ ’);
* tkprof
tkprof ora_11111.trc result.txt explain=scott/tiger aggregate=no sys=no sort=fchela
1) EXPLAIN : TKPROF 유틸리티 실행시의 실행 계획을 출력하기 위한 유저명/패스워드를 지정한다
2) SORT옵션 (지정한 옵션에 의해서 내림차순으로 sql가 출력, 이 외에도 다수의 옵션)
exeela:실행시의 경과시간순서
exedsk:실행시의 디스크 액세스 블록수순
exeqry:실행시의 액세스 블록수순
fchela:페치시의 경과시간순서
fchdsk:페치시의 디스크 액세스 블록수순
fchqry:페치시의 액세스 블록수순
로우/컬럼 |
설 명 |
Parse |
SQL문이 파싱되는 단계에 대한 통계. |
Execute |
SQL문의 실행 단계에 대한 통계. Update, Insert, Delete문장들은 여기에 수행한 결과만 나옵니다. |
Fetch |
SQL문이 실행되면서 페치된 통계. |
count |
SQL문이 파싱/실행/페치가 수행된 횟수 |
cpu |
parse, execute, fetch가 실제로 사용한 CPU시간(1/100초 단위) |
elapsed |
작업의 시작에서 종료시까지 실제 소요된 시간 |
disk |
디스크에서 읽혀진 데이터 블럭의 수 |
query |
메모리내에서 변경되지 않은 블럭을 읽거나 다른 세션에 의해 변경되었으나 |
current |
현 세선에서 작업한 내용을 커밋하지 않아 오로지 자신에게만 유효한 |
rows |
SQL문을 수행한 결과에 의해 최종적으로 액세스된 로우의 수 |
* awr report
cd $ORACLE_HOME/rdbms/admin
SQL> @awrrpt
* sid로 수행시간 조회
select event, time_waited as time_spent
from v$session_event
where sid = &sid
and event not in (
'Null event',
'client message',
'KXFX: Execution Message Dequeue - Slave',
'PX Deq: Execution Msg',
'KXFQ: kxfqdeq - normal deqeue',
'PX Deq: Table Q Normal',
'Wait for credit - send blocked',
'PX Deq Credit: send blkd',
'Wait for credit - need buffer to send',
'PX Deq Credit: need buffer',
'Wait for credit - free buffer',
'PX Deq Credit: free buffer',
'parallel query dequeue wait',
'PX Deque wait',
'Parallel Query Idle Wait - Slaves',
'PX Idle Wait',
'slave wait',
'dispatcher timer',
'virtual circuit status',
'pipe get',
'rdbms ipc message',
'rdbms ipc reply',
'pmon timer',
'smon timer',
'PL/SQL lock timer',
'SQL*Net message from client',
'WMON goes to sleep')
union all
select b.name, a.value
from v$sesstat a, v$statname b
where a.statistic# = b.statistic#
and b.name = 'CPU used when call started'
and a.sid = &sid;
* buffer cache hit ratio
SELECT 1 - (phy.value / (cur.value + con.value) ) "CACHE HIT RATIO"
FROM v$sysstat cur, v$sysstat con, v$sysstat phy
WHERE cur.name = 'db block gets'
AND con.name = 'consistent gets'
AND phy.name = 'physical reads' ;
반응형