Oracle PCTFREE PCTUSED 관련 내용

2014.02.13 16:51
 
 

Oracle PCTFREE 와 PCTUSED에 대한 개념 자료 이다. 

PCTFREE 등의 속성 설정은 테이블 및 트랜잭션 특성에 따라 다르게 적용이 되므로 

오라클의 성능이 점점 올라가면서 전통적 관리 기법에 대해서도 다시 한번 고민해볼 시기인 것 같긴하다.


아래는 어디서 퍼온 내용인데 참고 정도로만 확인하자.


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 


신고

슈플 Oracle/Administration

티스토리 툴바