사용자 도구

사이트 도구


study:oracle:adv_owi_10g:intro

문서의 이전 판입니다!


OWI 소개

작성자

작성자 서동길 (starlits_at_adminschool.net)
작성일 2009년 7월 20일 (최초작성)

OWI 정의

  1. Oracle Wait Interface 에 대한 정의 한다.

오라클 대기현상을 표현하는 3가지 값

  1. 대기회수
  2. 타임아웃회수
  3. 대기시간

응답시간

  1. 응답시간은 서비스시간과 대기시간의 합이다.
  2. Response Time = Service Time + Wait Time

OWI의 특징

  1. OWI는 문제지향적(Problem-Oriented) 이다.
    1. 오라클은 문제가 생길때마다(원하는 자원을 획득하는데 실패할때마다)
      특정 이벤트를 발생하면서 대기함으로써 현재 어떤 문제가 발생했고, 왜 발생했는지를 알려준다.
    2. 이전에는 Buffer cache hit ratio 가 성능진단의 중요 팩터였으나,
      9i 이후를 시점으로 컴퓨터파워(CPU,MEM,IO)가 좋아지면서 더 이상 Buffer cache hit ratio 가 더이상 성능진단의 중요 팩터가 아니다.
  2. OWI는 정량적이다.
    1. OWI는 추축이 아닌 사실숫자에 기반한 성능분석을 가능하게 한다.
  3. OWI는 징후학적이다.
    1. Wait Event 를 통해 오라클 내부의 성능문제를 외부로 드러내어 원인을 추론하고 성능문제를 해결할 수 있다.
    2. 대기이벤트들의 대한 치밀한 분석과 내부구조에 대한 이해, 경험이 부족하다면 오판을 할 가능성도 존재한다.
  4. OWI는 개선중이다.
    1. OWI는 끊임없이 진보하는 방법론이다.

OWI 툴

OWI 다이나믹 뷰

V$EVENT_NAME 모든 대기이벤트에 대한 참조성 정보
V$SYSTEM_EVENT
V$SESSION_EVENT
V$SESSION_WAIT
V$SESSION_WAIT_HISTORY
V$SYSTEM_WAIT_CLASS
V$SESSION_WAIT_CLASS
V$EVENT_HISTOGRAM

기타 중요 다이나믹 뷰

V$SESSION 세션정보
V$ACTIVE_SESSION_HISTORY
V$PROCESS
V$TRANSACTION
V$LATCH, V$LATCH_PARENT, V$LATCH_CHILDREN, V$LATCH_HOLDER
V$LOCK, V$LOCKED_OBJECT, V$ENQUEUE_LOCK
V$SQL
V$LIBRARYCACHE, X$KGLLK, X$KGLPN
V$ROWCACHE, V$ROWCACHE_PARENT
V$SGASTAT
V$SEGMENT_STATISTICS
V$SESS_TIME_MODEL, V$SYS_TIME_MODEL
V$BH, X$BH

Extended SQL Trace

  1. SQL Trace 는 기본적으로 10046 진단이벤트를 통해 활성화된다.
  2. 4가지 레벨로 제어할 수 있다.
  3. SQL 성능진단을 위해서 SQL Trace 를 할 경우에는 반드시 레벨 12를 사용해야 한다.
레벨 설명
LEVEL 1 SQL문장의 실행정보(Parse,Execute,Fetch 단계 및 Row source operation 결과)만을 제공
LEVEL 4 LEVEL 1 + 바인드 변수값 제공
LEVEL 8 LEVEL 1 + 대기정보 제공
LEVEL 12 LEVEL 4 + LEVEL 8
SQL 문장의 실행정보와 바인드 변수 값, 대기정보를 제공

10046 진단이벤트 활성화 방법

  1. 현재세션에서 작업하고자 하는 경우
  2. dbms_system을 이용해 다른 세션에 대해 Trace를 수행하는 경우
  3. dbms_monitor 패키지를 이용하여 다른 세션에 대해 Trace를 수행하는 경우(10g 부터 제공)
  4. oradebug를 이용해 다른 세션에 대해 Trace를 수행하는 경우

oradebug 와 덤프(dump)

  1. 대기현상들을 분석하고 이해하는데 유용한 툴
  2. oradebug는 DBA를 위한 가장 강력한 툴
  3. oradebug를 반드시 sysdba 권한으로 실행하여야 한다.
  4. oradebug 명령어 확인(help)
    $ sqlplus / AS sysdba
    SQL> oradebug help
  5. 더 자세한 정보는 oradebug 사용법 를 보면 된다.

AWR(Automatic Workload Repository)

  1. 10g 부터 도입된 성능이력관리 기능이다.
  2. 수집된 데이터는 DBA_HIST_XXX 뷰를 통해 조회가 가능하다.

AWR에서 수집되는 데이터들

Active Session History
부하가 큰 문장
시스템 레벨과 세션 레벨에서 Time Model 통계
세그먼트와 기타 데이터베이스 객체에 대한 사용 통계치
V$SESSTAT, V$SYSSTAT, V$SYSTEM_EVENT, V$SESSEION_EVENT 등

제한사항

  1. 오라클 장애는 Active Session은 초당 1회 이상, Active SQL은 초당 수십 회 이상 캡쳐해서 저장할 수 있어야 한다.
  2. AWR 은 데이터를 테이블로 저장하기 때문에 빈번한 데이터 저장이 어려울 수 있다.
  3. AWR에서 스냅샷이 저장되는 주기가 30분인 점을 생각하면 AWR로 특정 시간대의 장애문제를 해석하는 것이 어려울 수도 있다.

OWI 데이타수집

Logoff Trigger

SQL을 이용한 주기적인 수집

AWR(Automatic Workload Repository)

DMA(Direct Memory Access)

기타

PL/SQL

스크립트들

study/oracle/adv_owi_10g/intro.1248190079.txt.gz · 마지막으로 수정됨: 2009/07/22 00:27 저자 starlits