2010년 3월 2일 화요일

다른 session 에 10046 trace 걸기

1. 해당 Session ID 와 Serial Number 검색
SELECT  
         s.status "Status", s.serial# "Serial#",
         s.username "DB User", s.osuser "Client User",
        p.program "O.S. Program",
s.sid "session ID"
    FROM v$session s, v$process p, sys.v_$sess_io si
   WHERE s.paddr = p.addr(+)
     AND si.sid(+) = s.sid
     AND (s.username IS NOT NULL)
     AND (NVL (s.osuser, 'x') <> 'SYSTEM')
     AND (s.TYPE <> 'BACKGROUND')
ORDER BY 1;


Status    Serial# DB User   Client User  O.S. Program   session ID
-------- ---------- ------------------------------ ------------------------------ ------------------------------------------------ ----------
ACTIVE  3 SYS   oracle10  oracle@ljh8324-skku (TNS V1-V3)  159

-- 특정 user의 세션정보 확인 --

select sid , serial# from V$session where username='V50';
 

2. 해당 세션에 Trace 를 건다. 

begin
dbms_monitor.session_trace_enable (
session_id => 159
,serial_num => 3
  ,waits => TRUE
,binds => TRUE );
end;
/

3. 수행이 끝나면 Trace 를 해제한다.

begin
dbms_monitor.session_trace_disable (
session_id => 159
,serial_num => 3
);
end;
/

4. tkprof 를 이용하여 변환.

cd $ORACLE_HOME/../admin/orcl10/udump/
tkprof xxx.trc report.prf sys=no

vi report.prf


댓글 없음:

댓글 쓰기