AWR 네트워크 대기 이벤트 모니터링
DB CAFE
thumb_up 추천메뉴 바로가기
- DBA { Oracle DBA 명령어 > DBA 초급 과정 > DBA 고급 과정 }
- 튜닝 { 오라클 튜닝 목록 }
- 모델링 { 데이터 모델링 가이드 }
목차
1 dba_hist_service_wait_class 와 dba_hist_snapshot[편집]
- 데이터베이스 대기 이벤트 통계는 Oracle 프로세스가 작업을 처리하기 위해 특정 유형의 데이터베이스 리소스를 기다려야 했던 시간과 시간을 보여줍니다.
- Oracle에서는 이러한 대기 이벤트를 관리, 애플리케이션, 클러스터, 커밋, 동시성, 구성, 유휴, 네트워크, 기타, 스케줄러, 시스템 I/O 및 사용자 I/O를 포함한 여러 범주로 그룹화합니다.
- 대기 이벤트 데이터는 대기 시간별로 정렬되어 있으면 효과적으로 사용할 수 있습니다.
- 이렇게 하면 가장 중요한 대기 이벤트가 먼저 발견되어 추가 조사를 위한 주요 후보가 됩니다.
SELECT TRUNC (end_interval_time) c1 -- 종료|시간
, wait_class c2 -- 대기|클래스
, SUM (time_waited) c3 -- 시간|대기
FROM dba_hist_service_wait_class
JOIN dba_hist_snapshot USING (snap_id)
WHERE wait_class = 'Network'
GROUP BY TRUNC (end_interval_time), wait_class
ORDER BY TRUNC (end_interval_time), c3 DESC;
2 dba_hist_system_event[편집]
- AWR에서 dba_hist_system_event 테이블을 쿼리하여 Oracle이 네트워크 패킷을 기다린 시간을 확인할 수 있습니다.
- 네트워크 활동을 보여줄 수 있는 여러 시스템 이벤트가 있습니다.
select * from dba_hist_system_event
where event_name like 'SQL%';
3 sys.v_$system_event[편집]
SELECT event event,
total_waits total_waits,
time_waited / 100 time_waited,
total_timeouts total_timeouts,
average_wait / 100 average_wait
FROM sys.v_$system_event
WHERE event IN ('SQL*Net break/reset to client',
'SQL*Net message from client',
'SQL*Net message to client',
'SQL*Net more data to client')
AND event NOT LIKE '%done%'
AND event NOT LIKE '%Idle%'
ORDER BY total_waits DESC;
4 v$system_wait_class[편집]
SELECT wait_class,
total_waits,
ROUND (100 * (total_waits / sum_waits), 2) pct_waits,
time_waited,
ROUND (100 * (time_waited / sum_time), 2) pct_time
FROM (SELECT wait_class, total_waits, time_waited
FROM v$system_wait_class
WHERE wait_class = 'Network' AND wait_class != 'Idle'),
(SELECT SUM (total_waits) sum_waits, SUM (time_waited) sum_time
FROM v$system_wait_class
WHERE wait_class != 'Idle')
ORDER BY 5 DESC;