Oracle PCTFREE PCTUSED 관련 내용
2014. 2. 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