V$SYSTEM_EVENT
- 앞서
v$sysstat
와 함께 v$system_event
까지 저장하면 대기 이벤트 발생 현황도 분석이 가능하다.
- 초 단위로 너무 자주 수집하지만 않는다면 시스템에 주는 부하도 미미하다.
(1) 이벤트 뷰
- 대기 이벤트와 각 세션별로 이벤트 발생 상황을 로깅하는 기능을 제공한다.
v$system_event
: 인스턴스 기동 후 현재까지 누적된 이벤트 발생 현황을 시스템 레벨로 확인하고자 할 때 사용한다.
v$session_event
: 개별 세션별로 누적치를 확인할 수 있다.
v$session_wait
: 세션별로 현재 진행 중이거나 바로 직전에 발생했던 이벤트 정보를 알 수 있다.
(2) v$session_wait
- 이벤트 트레이스를 걸지 않았더라도 아래처럼 해당 세션에서 현재 어떤 이벤트가 발생하고 있는지 곧바로 확인이 가능하다.
[예시] v$session_wait을 조회하여 10046 이벤트 트레이스 레벨 8 또는 12 모드의 이벤트 정보와 동일한 정보 출력하기
=====================================================================================================
SQL> column wait_time heading 'WAIT|TIME'
SQL> column seconds_in_wait heading 'SECONDS|IN WAIT'
SQL> SELECT event , wait_time , seconds_in_wait , state
, p1text || '->' || p1 || ',' || p2text || '->' || p2 || ',' || p3text || '->' || p3 param
from v$session_wait where sid = 70 ;
SECONDS
EVENT WAIT TIME IN WAIT STATE PARAM
enq: TX - row lock contention 0 304 WAITING name|mode->1415053318,usn<<16 | slo
t->458760,sequence->663
=====================================================================================================
WAIT_TIME 값에 따른 해석
WAIT_TIME
> 0 :: 마지막 대기이벤트를 대기한 시간을 나타낸다.
WAIT_TIME
= 0 :: 이 이벤트를 현재 대기 중임을 나타낸다.
WAIT_TIME
= -1 :: 마지막 대기 이벤트를 대기한 시간이 10ms 미만임을 나타낸다.
WAIT_TIME
= -2 :: 타이밍이 활성화되지 않음을 나타낸다.