Oracle 10g 강좌
Automatic Space Segment Management 3 1 99,999+

by 구루비 ASSM TABLESPACE [2006.04.10]


Freelist를 통한 Free Block관리

  - Oracle 8i까지에서, segment의 Free Block들은 항상 freelist를 통해 관리 되었습니다.

  - PCTUSED 아래로 채워진 block들이 freelist로 연결되어 있어서, insert가 필요하면 이 freelist를 segment header에서부터 뒤지면서 블록내의 빈 공간에 insert를 하게 됩니다.

 

Automatic Space Segment Management

  - Oracle 9i부터는 PCTFREE, PCTUSED를 직접 지정하는 방법은 권하지 않고, SEGMENT SPACE MANAGEMENT AUTO 절을 넣어서 자동으로 관리하는 방법을 권장합니다.

  - 이 ASSM방식은 segment에 할당된 space를 bitmap으로 관리 합니다.

  - ASSM 방법을 이용하여 space를 관리하게 되면 free block에 대해서 좀 더 상세한 정보를 바탕으로 Space Utilization도 높아지고, freelist를 타고 다음다음 block을 access하는대신 BMB를 참고로 적당한 block들을 선택하기 때문에 space에 관한 성능도 좋아 집니다.

  - ASSM 방식을 이용하려면 반드시 LOCALLY MANAGED TABLESPACE여야 하며, 다음과 같이 SEGMENT SPACE MANAGEMENT AUTO를 지정하면 됩니다.

 
SQL> CREATE TABLESPACE assm_tbs1
     DATAFILE 'C:\oracle\oradata\tbs\assm_tbs1.dbf'
     SIZE 10M 
     EXTENT MANAGEMENT LOCAL
     SEGMENT SPACE MANAGEMENT AUTO; 
    

  - AUTO가 아닌 MANUAL로 지정되게 되면 이전과 같이 freelist 방식을 사용하게 됩니다.

  - DBA_TABLESPACES view의 SEGMENT_SPACE_MANAGEMENT column을 통해 AUTO인지 MANUAL방식인지 확인이 가능 합니다.

  - ASSM 방식으로 생성하면 BMB (BitMap Blocks)라는 것이 생기게 됩니다. 이 BMB에는 할당된 block들의 space정보를 4 bit를 이용 하여 여섯 가지 상태를 나타내는 bitmap 정보를 가지고 관리를 합니다.

  • ① 75% 이상의 free space를 가지는 block
  • ② 50% 이상 75% 미만의 free space를 가지는 block
  • ③ 25% 이상 50% 미만의 free space를 가지는 block
  • ④ 25% 미만의 free space를 가지는 block
  • ⑤ 꽉 찬 block.
  • ⑥ 한번도 사용하지 않아 format 되지 않은 block

- 강좌 URL : http://www.gurubee.net/lecture/1896

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

by 오동규 [2006.05.07 02:41:49]
오류가 있습니다.
- Oracle 9i부터는 PCTFREE, PCTUSED를 직접 지정하는 방법 --> 여기서 pctused 는 맞는데 pctfree 는 빼셔야 할것 같네요. ASSM 에서는 PCTUSED 는 무시되고, PCTFREE 는 예전과 같이 관리된답니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입