본문 바로가기
Oracle/운영

다른 세션에서 10046 trace 수행하기

by 취미툰 2022. 9. 6.
반응형

명령어

 

활성화
exec sys.dbms_system.set_ev(sid, serial#, 10046, 12, null);
or
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,true);

비활성화
exec sys.dbms_system.set_ev(sid, serial#, 10046, 0, null);
or
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(sid,serial#,false);

 

실제 세션을 두개 열어서 테스트해보겠습니다.

 

1.

세션1

세션2의 정보를 확인 후 세션2에 trace를 수행하도록 하겠습니다.

SYS@SQL> select sid,serial# from v$session where username='DEV';

       SID    SERIAL#
---------- ----------
      2272      39165

exec sys.dbms_system.set_ev(2272, 39165, 10046, 12, null);

 

2.

세션2

SQL을 임의로 수행하기 (해당 SQL은 저의 임의대로 trace가 잘되는지 확인하기 위해서 수행한 것입니다.)

DEV@SQL>  select count(*) from ord_random;

  COUNT(*)
----------
  15000000

DEV@SQL> select count(*) from ord_random where rownum <= 100000;

  COUNT(*)
----------
    100000

 

 

3.

세션1

10046 trace 비활성화

exec DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(2272,39165,false);

 

 

4.trc 파일 확인 및 tkprof 수행하여 보기좋게 txt파일로 변환

$ls -al
...생략
-rw-r-----    1 oracle   dba            1573 Sep  5 17:12 dbarac1_ora_23724520.trm
-rw-r-----    1 oracle   dba            3838 Sep  5 17:12 dbarac1_ora_23724520.trc
...생략

$ tkprof dbarac1_ora_23724520.trc other_session_10046.txt

 

내용확인

...생략
select count(*)
from
 ord_random


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.75       1.18          0      33344          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.75       1.18          0      33344          0           1

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 130
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=33344 pr=0 pw=0 time=1187116 us starts=1)
  15000000   15000000   15000000   INDEX FAST FULL SCAN ORD_RANDOM_PK (cr=33344 pr=0 pw=0 time=1461041 us starts=1 cost=9405 size=0 card=15000000)(object id 115789)


...


select count(*)
from
 ord_random where rownum <= 100000


call     count       cpu    elapsed       disk      query    current        rows
------- ------  -------- ---------- ---------- ---------- ----------  ----------
Parse        1      0.00       0.00          0          0          0           0
Execute      1      0.00       0.00          0          0          0           0
Fetch        2      0.00       0.01          0        224          0           1
------- ------  -------- ---------- ---------- ---------- ----------  ----------
total        4      0.00       0.01          0        224          0           1

Misses in library cache during parse: 1
Optimizer mode: ALL_ROWS
Parsing user id: 130
Number of plan statistics captured: 1

Rows (1st) Rows (avg) Rows (max)  Row Source Operation
---------- ---------- ----------  ---------------------------------------------------
         1          1          1  SORT AGGREGATE (cr=224 pr=0 pw=0 time=13277 us starts=1)
    100000     100000     100000   COUNT STOPKEY (cr=224 pr=0 pw=0 time=26269 us starts=1)
    100000     100000     100000    INDEX FAST FULL SCAN ORD_RANDOM_PK (cr=224 pr=0 pw=0 time=13862 us starts=1 cost=65 size=0 card=100000)(object id 115789)


Elapsed times include waiting on following events:
  Event waited on                             Times   Max. Wait  Total Waited
  ----------------------------------------   Waited  ----------  ------------
  SQL*Net message to client                       2        0.00          0.00
  SQL*Net message from client                     1        0.00          0.00

...생략

 

다른 세션에서 trace 파일이 잘 생성된것을 확인 할 수 있습니다. 임의로 SQL을 수행한 것도 trace문에 잘 나타나 있습니다.

 

이상입니다.

반응형

댓글