본문 바로가기

Oracle/admin

SQL TRACE ,tkprof

특정세션에 대해 trace를 거는 방법.

1. 해당 SQL이 돌고 있는 세션의 정보가 필요하다.
select SID,SERIAL#
from v$session
where username=' '
and MACHINE =' '

2.sid,serial#을 알아냈으면 특정세션에 트레이스 시작

SQL> exec SYS.DBMS_SYSTEM.SET_TRACE_IN(SID,SERIAL#,TRUE);

3.해당 세션에서 분석할 sql을 실행 한 후 sql이 실행완료되면 트레이스 종료.

SQL> exec SYS.DBMS_SYSTEM.SET_TRACE_IN(SID,SERIAL#,FALSE);

4.트레이스 파일 위치 확인

SQL> show parameter user_dump_dest

5. 해당 위치로 이동후 트레이스파일이 생성되었는지 확인한다.
트레이스 파일 명칭은 <SID>_ora_<PID>.trc 로 생성된다.

6.트레이스 파일을 텍스트파일로 변경 하기 위하여 tkprof 를 사용해서 분석하자.
$> tkprof 트레이스파일생성위치 새로생성될위치 sys=no
ex> tkprof /oracle/.../orcl_ora_1423.trc /oracle/tracefile00.prf sys=no

p.s : 트레이스 파일의 최대 사이즈 확인

SQL> show parameter max_dump
* Query : 다른 사용자가 DML을 수행중일때 읽기 일관성을 위해 읽어온 블록 수
* Current : DML작업을 수행후 변경 데이터를 읽은 블록수

'Oracle > admin' 카테고리의 다른 글

컬럼 관리  (0) 2015.09.14
Control file 재생성  (0) 2015.09.14
Tuning 참고  (0) 2015.09.14
M view  (0) 2015.09.14
커서 공유  (0) 2015.09.14