Oracle Admin 강좌 (Oracle9i)
Oracle Block과 Extent(Oracle8i) 3 0 99,999+

by 구루비 BLOCK EXTENT 익스텐트 DB_BLOCK_SIZE [2002.07.14]


  Bulletin no : 10743 참고

  오라클 logical storage structure에는 block, extent가 있습니다.

  Logical이라는 의미는 Physical의 상대개념으로 우리가 눈으로 직접 확인하는 Datafile의 모습과는 달리 내부적으로 관리되는 구조라는 의미입니다. 여기서는 이들의 기본적인 특징을 extent를 중심으로 알아보겠습니다.

Data Block

  Data Block은 Logical Block, ORACLE Block또는 page라는 용어로 불리워 지는데, Os Disk상의 일정한 Byte단위의 Space를 말합니다.

  예로 ORACLE block이 2K라는 의미는 OS에서 2048Byte가 한 단위로 묶여서 Block을 형성함을 의미 합니다.

이것은 다음과 같은 특징을 갖습니다.
  • - ORACLE Block Size는 OS Block의 N배수로 이루어 집니다.
  • - Database가 생성될 때 지정된 ORACLE Block은 다시 변경이 불가능 합니다.
  • - SGA의 Database Buffer에 I/O가 일어나는 기본 단위가 됩니다.
  • - init.ora file의 DB_BLOCK_SIZE로 지정 합니다.

Extent

  Extent는 일정한 수의 연속된 ORACLE block 들을 말합니다. 일정한 수라는 의미는 사용자가 지정 한 값을 말합니다.

  예로 CREATE TABLE문장에서 STORAGE OPTION중 INITIAL EXTENT를 10K로 지정하면 DB_BLOCK_SIZE가 2K일 경우 5Block이 됩니다. 즉 5개의 ORACLE Block이 하나의 EXTENT로 구성됨을 의미합니다.

Extent의 특성

  - 각 Segment는 Data를 넣기위해 적어도 하나 이상의 Extent가 생성되어야 합니다.

  - Object는 현재 할당된 모든 Extent가 이미 채워진 경우에만 새로운 Extent를 할당 합니다.

  - Segment가 생성될때 Initial의 크기로 처음 Extent가 생성되고, 현재 Extent가 꽉차면 다음과 같은 방식으로 새로운 Extent를 할당 합니다.
    Next Extent = Next * (1+Pctincrease/100)

  - 잦은 De-Allocation은 Tablespace의 단편화(Fragmentaton)현상을 야기할 수 있습니다.

Extent는 언제 할당(allocation)되는가?

  Segment(Table,Index등)가 처음 생성될때 Initial Extent크기만한 Extent가 할당.

  Segment가 점차 커짐에 따라 Next Extent크기만한 Extent가 할당됨.

Extent는 언제 de-allocaltion되는가?

  Segment를 drop또는 truncate시킬때.

  Segment크기가 optimal보다 커졌을때(이경우는 rollback segment에만 해당)

참고링크

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

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

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

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입