반응형
명령어
활성화
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문에 잘 나타나 있습니다.
이상입니다.
반응형
'Oracle > 운영' 카테고리의 다른 글
Full Table Scan 시 Direct Path Read ? (0) | 2022.10.17 |
---|---|
[SQL 성능 체크 tool]SQLHC 와 SQLT (2) | 2022.09.23 |
TABLE이 아닌 OBJECT RENAME TO (0) | 2022.09.05 |
move tablespace parallel 옵션 사용 (0) | 2022.08.22 |
Online Redefinition시 Block 감소량 비교 (0) | 2022.08.16 |
댓글