V$ACTIVE_SESSION_HISTORY 뷰로 확인되는 데이터를 확인
-- Note:
SQL> -- v$active_session_history
SQL> col sid format 999
SQL> col sql_text format a20
SQL> col event format a10
SQL> col sid new_value sid
SQL> select to_char(h.sample_time,'mi:ss') as sample_time
2 , h.sample_id
3 , h.session_id as sid
4 , h.session_state as st
5 , h.sql_id
6 , (select sql_text from v$sqlarea a where a.sql_id = h.sql_id) as sql_text
7 , event
8 , blocking_session as blocker
9 from v$active_session_history h
10 where session_id = &sid
11 ;
구 10: where session_id = &sid
신 10: where session_id = 12
SAMPL SAMPLE_ID SID ST SQL_ID SQL_TEXT EVENT BLOCKER
----- ---------- ---- ------- ------------- -------------------- ---------- ----------
44:30 8747 12 ON CPU 9tz4qu4rj9rdp select count(*) from
all_objects
37:40 8338 12 ON CPU 25vwt55t1093f select to_clob(
restart||queue_
schema||'.'||queue_n
ame || '(' || queue_
... (중략)
콜 스택 덤프 생성으로 확인되는 데이터를 확인
-- STEP1. 콜 스택 덤프 명령을 수행하면 트레이스 파일에 다음과 같이 함수 호출 히스토리가 출력됨
SQL> -- callstack data is snapshot + profiling
SQL> alter session set events 'immediate trace name callstack level 1';
세션이 변경되었습니다.
-- STEP2. 아래의 결과가 의미하는 것은 서버 프로세스가 현재의 명령을 처리하기 위해
-- 1) { 00000000 -> 76EA3779 -> _OracleThreadStart -> _opimai -> ... -> _ksedst_tracecb -> _skdstdst } 의 순서로 함수를 호출 중이라는 것을 의미함
-- 2) 현재 호출 중인 가장 함수는 가중 위에 있는 _skdstdst 함수임
----- Call Stack Trace -----
calling call entry argument values in hex
location type point (? means dubious value)
-------------------- -------- -------------------- ----------------------------
EnumerateLoadedModules64 failed with error -1073741819
_skdstdst()+121 CALLrel _kgdsdst() E8E9768 0
_ksedst1()+93 CALLrel _skdstdst() E8E9768 0 0 436646 435BE2
436646
_ksedst_tracecb()+5 CALLrel _ksedst1() 0 0
4
_dbkdaKsdActDriver( CALLreg 00000000 1
)+3615
06E05165 CALLreg 00000000 DB40454 E8EAEA0
06E05D11 CALLrel 06E04E06 DB40454 5C0D830 20C0003
E8EAEA0 1
06DFE9A5 CALLrel 06E059F2 DB40454 DB4ECF4
075B4D0A CALLrel 06DFE972 DB40454 DB4ECD8
_dbkdParseCmd()+395 CALLrel _dbgdParseCmd() DB40454 BC20380 E13FFD0
DB413C8 1D843C84 26 3 0 0
E8EB4FC
__VInfreq__kkyase() CALLrel _dbkdParseCmd() 1D843C84 26 3 E8EB4FC
+5166
_kksExecuteCommand( CALLrel _kkyase() 1D843C74
)+1024
_opiexe()+17037 CALLrel _kksExecuteCommand( E4902A0 2 E8ECA98
)
_kpoal8()+2109 CALLrel _opiexe() 49 3 E8ECA98
_opiodr()+1248 CALLreg 00000000 5E 1C E8EF070
61AB29CD CALLreg 00000000 5E 1C E8EF070 0
_opitsk()+1404 CALL??? 00000000 BC2AC00 5E E8EF070 0 E8EED00
E8EF19C 53E52E 0 E8EF1C8
_opiino()+980 CALLrel _opitsk() 0 0
_opiodr()+1248 CALLreg 00000000 3C 4 E8EFBC4
_opidrv()+1201 CALLrel _opiodr() 3C 4 E8EFBC4 0
_sou2o()+55 CALLrel _opidrv() 3C 4 E8EFBC4
_opimai_real()+124 CALLrel _sou2o() E8EFBD4 3C 4 E8EFBC4
_opimai()+125 CALLrel _opimai_real() 2 E8EFBFC
_OracleThreadStart@ CALLrel _opimai() 2 E8EFF3C 0 70 FFFFFFFF
4()+830 FFFFFFFF
752EED67 CALLptr 00000000 E7EFF6C E8EFFD4 76EA377B
E7EFF6C 787D2C88 0
76EA3779 CALLreg 00000000 E7EFF6C 787D2C88 0 0 E7EFF6C
0
76EA3749 CALLrel 76EA3754 401326 E7EFF6C 0 0 0 0
00000000 CALL??? 00000000
----- End of Call Stack Trace -----
콜 스택를 여러번 수행하여 여러 개의 기록을 기반으로 프로파일링 데이터를 확인
SQL> select * from table(tpack.callstack_prof_report(&sid));
10032 진단 이벤트 정의
prompt> oerr 10032
"sort statistics (SOR*)"
// *Cause:
// *Action:
10032 진단 이벤트에 의해 생성되는 스냅샷 데이터를 확인
-- STEP1. 10032 진단 이벤트를 활성화한 상태에서 쿼리를 수행함
SQL> -- 10032 trace
SQL> ALTER SESSION SET EVENTS '10032 trace name context forever, level 10';
세션이 변경되었습니다.
SQL> select OWNER, count(*) from ALL_OBJECTS group by OWNER order by OWNER;
OWNER COUNT(*)
------------------------------ ----------
APPQOSSYS 3
DBSNMP 57
EXFSYS 187
MAZAL 3
OLAPSYS 717
ORACLE_OCM 8
OUTLN 8
PUBLIC 24438
SYS 30447
SYSMAN 3404
SYSTEM 503
WMSYS 306
-- STEP3. 10032 진단 이벤트 결과를 확인
-- 마치 V$SESSTAT뷰 처럼 현재 상태에 대한 스냅샷 데이터를 제공하고 있음
---- Sort Parameters ------------------------------
sort_area_size 65536
sort_area_retained_size 65536
sort_multiblock_read_count 1
max intermediate merge width 3
---- Sort Statistics ------------------------------
Input records 60081
Output records 12
Total number of comparisons performed 150601
Comparisons performed by in-memory sort 150601
Total amount of memory used 2048
Uses version 1 sort
---- End of Sort Statistics -----------------------
Oracle Event Reference
원문URL : https://netfiles.uiuc.edu/jstrode/www/oraparm/EventReference.html#10013
- 강좌 URL : http://www.gurubee.net/lecture/4290
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.