사용자 도구

사이트 도구


dbms:oracle:concept:highwatermark

문서의 이전 판입니다!


Oracle HWM(High Water Mark)

HWM(High Water Mark)란?

  1. HWM(High Water Mark)란 저장공간을 갖는 세그먼트 영역에서 사용한 적이 있는 Block과 사용한 적이 없는 Block 의 경계점을 의미한다.

특성

  1. High Water Mark는 증가하기만 한다.
  2. Truncate 명령을 사용하면 Header Block 위치로 돌아오게 된다.(0으로 set)
  3. Delete 명령은 HWM의 변화를 주지 않는다.
  4. 5 block 씩 증가한다. (초기 5 block이 될때까지는 1 block씩 증가한다.)
  5. Table의 Full Scan량과 동일하다.
  6. USER_TABLES.AVG_SPACE의 기준이 된다.

관련 Data Dictionary

USER_TABLES.BLOCKS HWM와 같은 값으로 단위는 block 이다.
USER_TABLES.EMPTY_BLOCKS 할당된 블록 중에서 HWM 위에 미사용으로 남아있는 공간의 블록 수.
USER_TABLES.AVG_SPACE 한 블록당 평균 FREE SPACE SIZE.
단위는 Byte 이다.
Header Block을 제외한 HWM 안에 있는 Block들에 대해서 평균을 구하므로 오차가 있을 가능성이 많다.
테이블 사이즈 계산 테이블 사이즈 = (blocks + empty_block + 1) = 사용블록 + 비어있는블록 + segment head block

TUNING

  1. 계산된 테이블사이즈가 세그먼트의 크기(USER_SEGMENTS.BLOCKS)와 다르면 Analyze를 다시 해주어야 한다.
  2. EMPTY_BLOCKS가 BLOCKS에 비해 너무 크면, INITIAL_EXTENT나 NEXT_EXTENT를 줄여야 한다.
  3. 입력된 데이터 건수에 비해 HWM가 너무 높다면 segment를 재생성을 고려해야 한다.
    이유는 실제 데이터 건수는 작은데 비해 Full Scan시에 HWM까지 검색해 Disk I/O가 많아져 부하가 증가하게 된다.
  4. USER_TABLES.AVG_SPACE가 너무 크면 테이블을 재생성해야 한다.
    PCT_USED와 PCT_FREE 의 중간 이상
    DB_BLOCK_SIZE * (100 - PCT_USED + PCT_FREE) / 200 
dbms/oracle/concept/highwatermark.1202919094.txt.gz · 마지막으로 수정됨: 2008/02/14 01:11 저자 starlits