DBA가 되고 싶은 병아리

여유공간과 기본 확보 공간 본문

Oracle Study

여유공간과 기본 확보 공간

미스틱스 2011. 12. 20. 11:06

PCTFREE

  블럭내에 이미 존재하고 있는 Row에 Update가 가능하도록 예약시켜 놓는 블럭의 퍼센트 값을 지정 합니다.

  예로 "PCTFREE 20" 으로 설정을 하면, 데이터 블록의 20%를 사용 가능한 빈 영역으로 유지하여 각 블록에 있는 행을 갱신하는데 사용한다는 의미입니다.

  PCTFREE의 기본값은 10% 입니다.

  PCTFREE와 PCTUSED의 합이 100을 초과하지 않는 범위 내에서 0에서 99까지의 값을 PCTFREE 값으로 사용할 수 있습니다.

  INDEX값은 수정이 자주 발생하지 않으므로 PCTFREE는 5%정도가 적당합니다.

PCTFREE가 적을 경우

  - 기존 테이블 행 갱신에 의한 확장을 위해 적은 공간을 확보 합니다.

  - 많은 로우가 한 블럭에 입력 가능합니다.

  - 수정이 적은 세그먼트에 적합 합니다.

PCTFREE가 클 경우

  - 블럭당 적은 row가 입력됩니다. 즉 같은 row를 입력하기 위해서 많은 블럭이 소요 됩니다.

  - 행 조각을 자주 체인화할 필요가 없으므로 수정 수행 속도가 증가 합니다.

  - 자주 수정되는 세그먼트에 적합 합니다.

PCTUSED

  오라클 서버가 테이블의 각 데이터 블록에 대해 유지하려는 사용 공간의 최소 백분율로써 데이터 세그먼트에 대해 지정합니다

  예로 "PCTUSED 40" 으로 설정하면, 데이터 블록의 사용영역이 39%보다 적어지지 않으면 새로운 행을 삽입할 수 없음을 의미 합니다.

  PCTUSED의 기본값은 40% 입니다.

PCTUSED값이 적을 경우

  - 블록이 재사용되는 일이 적어질 수 있으므로 처리 비용이 감소 합니다.

  - 데이터베이스에서 사용되지 않은 공간이 증가 합니다.

PCTUSED값이 클 경우

  - 블록이 재사용되는 일이 많아질 수 있으므로 처리 비용이 증가 합니다.

  - 공간 사용도를 향상 시킵니다.

PCTFREE와 PCTUSED값을 선택하는 예

① UPDATE시 ROW의 크기가 증가 될 때
  • - PCTFREE = 20
  • - PCTUSED = 40

② Insert, Delete가 자주 발생하지만 Update시 ROW의 크기가 증가 되지 않을 때
  • - PCTFREE = 5
  • - PCTUSED = 60

③ 테이블이 매우 크지만 대부분 Read Only Transaction 일 때
  • - PCTFREE = 5
  • - PCTUSED = 90

PCTFREE = 20 / PCTUSED = 40 일 경우



<출처> 오라클 클럽

'Oracle Study' 카테고리의 다른 글

oracle asm 설치 패키지  (0) 2015.12.31
오라클 NLS_LANG 설정변경  (0) 2012.02.03
RAC 수동 구성  (0) 2012.02.03
OCFS2 란 무엇인가??  (0) 2012.02.03
Buffer lock에 관련 되어서  (0) 2012.02.03