alter session set sql_trace = true; --트레이스 걸기
select * from emp where empno = 7900; --SQL 실행
select * from dual; --SQL 실행
alter session set sql_trace = false; --걸어놓은 트레이스 해제
=> 그러고 나면, 지정된 서버 디렉토리에 트레이스파일(.trc)이 생성
하지만, 트레이스파일을 직접분석하기에는 대략난감.
그러므로 TKProf유틸리티를 사용하여, 분석하기 쉽도록 이쁘게 포맷팅해서 보면 됨.
tkprof ora10g_ora14370_oraking.trc report.prf sys=no
=> ora10g_ora14370_oraking.trc 파일을 예쁘게 포맷팅해서 report.prf으로 만들어주고, SQL을 파싱하는 과정에서 내부적으로 수행되는 SQL은 제외한다(sys=no).
=> 그리고, 예쁘게 만든 파일 분석하기
항목 | 설명 | |
---|---|---|
call | 커서 상태에 따라 Parse, Execute, Fetch 세 개의 Call로 나누어 각각에 대한 통계정보를 보여준다. \- Parse : 커서를 파싱하고 실행계획을 생성하는 데 대한 통계 \- Execute : 커서의 실행 단계에 대한 통계 \- Fetch : 레코드를 실제로 Fetch하는 데 대한 통계 | |
count | Parse, Execute, Fetch 각 단계가 수행된 횟수 | |
cpu | 현재 커서가 각 단계에서 사용한 cpu time | |
elapsed | 현재 커서가 각 단계를 수행하는 데 소요된 시간 | |
disk | 디스크로부터 읽은 블록 수 | |
query | Consistent 모드에서 읽은 버퍼 블록 수 | |
current | Current모드에서 읽은 버퍼 블록수 | |
rows | 각 단계에서 읽거나 갱신한 처리건수 |
db block gets | current |
consistent gets | query |
physical reads | disk |
SQL*Net roundtrips to/from client | fetch count |
rows processed | fetch rows |