사용자 도구

사이트 도구


dbms:oracle:concept:highwatermark

문서의 이전 판입니다!


Oracle HWM(High Water Mark)

HWM(High Water Mark)란?

  1. HWM(High Water Mark)란 저장공간을 갖는 세그먼트 영역에서 사용한 적이 있는 Block과 사용한 적이 없는 Block 의 경계점을 의미한다.
  2. 데이타파일은 HWM을 가지지 않으며, 세그먼트만이 HWM를 가진다.

특성

  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.1202919212.txt.gz · 마지막으로 수정됨: 2008/02/14 01:13 저자 starlits