오라클 성능 트러블슈팅의 기초 (2012년)
V$EVENT_HISTOGRAM, AWR 0 0 41,581

by 구루비스터디 V$EVENT_HISTOGRAM AWR 대기 이벤트 10046 [2023.09.06]


V$EVENT_HISTOGRAM view, AWR

V$SESSION_EVENT 한계

  • 특정 대기 이벤트의 대기 회수가 100번이고, 대기시간은 1초라고 할 때, 평균 대기시간은 1/100=0.01초가 된다.
  • 하지만 만약, 99번은 0.001초인데 1번이 0.9초일 경우, 평균은 0.01초이지만 특정 이벤트에 편중이 된 값임에도 불구하고 확인하기가 힘듬
  • 이를 파악하기 위해, V$SESSION_EVENT 뷰에서 MAX_WAIT 컬럼을 제공하지만 완벽하게 파악하기는 힘듬


V$EVENT_HISTOGRAM 필요성

  • V$EVENT_HISTOGRAM 뷰는, 대기이벤트 별 대기시간의 히스토그램 데이터를 제공함
소스코드

SELECT WAIT_COUNT,
       WAIT_TIME_MILLI
FROM   V$EVENT_HISTOGRAM
WHERE  EVENT = 'db file sequential read'
;

수행내역
 
KENZO:xsoftdb:SYSTEM > 
  1  SELECT WAIT_COUNT,
  2         WAIT_TIME_MILLI
  3  FROM   V$EVENT_HISTOGRAM
  4  WHERE  EVENT = 'db file sequential read'
  5  ;

WAIT_COUNT WAIT_TIME_MILLI                   
---------- ---------------                   
      1056               1                   
        91               2                   
       187               4                   
       466               8                   
      1138              16                   
      1487              32                   
      1993              64                   
      1201             128                   
       113             256                   
        30             512                   
         6            1024                   

11 개의 행이 선택되었습니다.


  • 위의 결과를 보면 대기 시간이 1/1000초 이하인 경우, 50% 정도를 차지하지만 0.5초~1초(512 ~ 1024)에 해당되는 경우도 36건 정도가 발생된 것을 알 수 있음
  • 만약, 대기 시간이 긴 구간에서의 대기 회수가 많다면 싱글 블록 I/O의 성능이 전반적으로 느리다고 판단할 수 있으며, 자칫하면 극단적인 성능 저하 현상을 불러올 수 있음
  • 이 히스토그램 정보는 세션 레벨에서는 데이터를 제공하지 않고, 시스템 레벨에서만 사용할 수 있기 때문에, 특정 구간의 정보를 얻기 위해서는 V$EVENT_HISTOGRAM 뷰에 대한 스냅샷을 생성한 다음 차이(Delta) 값을 구헤야 하며, AWR 레포트를 이용할 경우 간편하게 얻을 수 있음


AWR

  • AWR(Automatic Workoad Repository) 에서 대기 이벤트와 관련된 뷰들을 정리해보면 다음과 같음
AWR 뷰
▶ DBA HIST ACTlVE SESS HISTORY
▶ DBA HIST BG EVENT SUMMARY
▶ DBA HIST EVENT HISTOGRAM
▶ DBA HIST EVENT NAME
▶ DBA HIST SERVICE WAIT CLASS
▶ DBA HIST SYSTE~l EVENT
▶ DBA HIST WAITCLASSMET HISTORY
  • AWR 데이터 를 시용할 때는 우선 AWR 리포트를 먼저 사용하고 필요한 경우에는 위의 뷰들을 직접 사용하면 된다.
"데이터베이스 스터디모임" 에서 2012년에 "오라클 성능 트러블슈팅의 기초 " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/4298

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입