사용자 도구

사이트 도구


study:oracle:adv_owi_10g:segment_wait_event

문서의 이전 판입니다!


oracle10g : Segment Wait Event

enq: HW - connection

세그먼트 공간관리기법

FLM
(Freelist Management)
HW락 경합 문제가 되는 경우가 많음
동시에 여러 세션에서 Insert 할 경우 enq: HW - contention 대기 이벤트 발생
( buffer busy wait 대기도 같은 이유로 발생)
ASSM
(Automatic Segment Space Management)
특별한 설정이나 관리기법이 없이도 HW락 경합 문제가 스스로 해결된다.

FLM 일 경우, HW락 경합을 줄이는 방법

  1. FREELISTS 값을 동시 트랜잭션의 수를 고려해서 충분히 잡아준다.
    default 값이 1로 되어 있으므로 꼭 변경해 주어야 한다.
  2. _BUMP_HIGHWATER_MARK_COUNT(하나의 프리리스트당 HWM을 이동하는 크기 결정하는 값) Hidden parameter 값을 크게 설정한다.
    예) FREELISTS = 10 이고 _BUMP_HIGHWATER_MARK_COUNT = 20 이면 , 한번에 200블록(10 * 20)만큼 HWM이 이동하게 된다.
  3. 적절한 크기의 익스텐드를 사용한다.
    1. 대부분 Extent Management Local Uniform Size 를 5M 정도로 설정할 것을 권고한다.

HW락

  1. HW락 : HWM을 여러 프로세스가 동시에 변경하는 것을 막기 위한 락
    1. 대량의 Insert 를 할 경우 (대부분의 경우)
    2. 대량의 Update 를 할 경우 Undo Segment 에서 HW락 경합현상이 발생하는 경우
  2. IMU(In-memory Undo) : 10g이상부터 추가된 기능으로,
    언두 데이타를 Undo Segment가 아닌 Shared Pool 내의 KTI-UNDO 영역에 저장하는 기능
    1. Undo Segment 확장에 의한 HW락 경합이 이전 버젼에 비해 줄어드는 효과
    2. Undo block 을 읽고 쓰는 작업이 줄어들어 시스템 전체의 성능개선효과
    3. 동일한 KTI-UNDO영역을 사용하기 위해 경합이 발생할 경우 latch: in memory undo latch 대기 이벤트가 발생한다.

HW락 경합을 줄이는 방법

enq: ST - contention, enq: TT - contention

enq: US - contention

study/oracle/adv_owi_10g/segment_wait_event.1250738828.txt.gz · 마지막으로 수정됨: 2009/08/20 12:27 저자 starlits