Bulletin no : 10743 참고
오라클 logical storage structure에는 block, extent가 있습니다.
Logical이라는 의미는 Physical의 상대개념으로 우리가 눈으로 직접 확인하는 Datafile의 모습과는 달리 내부적으로 관리되는 구조라는 의미입니다. 여기서는 이들의 기본적인 특징을 extent를 중심으로 알아보겠습니다.
Data Block은 Logical Block, ORACLE Block또는 page라는 용어로 불리워 지는데, Os Disk상의 일정한 Byte단위의 Space를 말합니다.
예로 ORACLE block이 2K라는 의미는 OS에서 2048Byte가 한 단위로 묶여서 Block을 형성함을 의미 합니다.
Extent는 일정한 수의 연속된 ORACLE block 들을 말합니다. 일정한 수라는 의미는 사용자가 지정 한 값을 말합니다.
예로 CREATE TABLE문장에서 STORAGE OPTION중 INITIAL EXTENT를 10K로 지정하면 DB_BLOCK_SIZE가 2K일 경우 5Block이 됩니다. 즉 5개의 ORACLE Block이 하나의 EXTENT로 구성됨을 의미합니다.
- 각 Segment는 Data를 넣기위해 적어도 하나 이상의 Extent가 생성되어야 합니다.
- Object는 현재 할당된 모든 Extent가 이미 채워진 경우에만 새로운 Extent를 할당 합니다.
- Segment가 생성될때 Initial의 크기로 처음 Extent가 생성되고, 현재 Extent가 꽉차면 다음과 같은 방식으로 새로운 Extent를 할당 합니다.
Next Extent = Next * (1+Pctincrease/100)
- 잦은 De-Allocation은 Tablespace의 단편화(Fragmentaton)현상을 야기할 수 있습니다.
Segment(Table,Index등)가 처음 생성될때 Initial Extent크기만한 Extent가 할당.
Segment가 점차 커짐에 따라 Next Extent크기만한 Extent가 할당됨.
Segment를 drop또는 truncate시킬때.
Segment크기가 optimal보다 커졌을때(이경우는 rollback segment에만 해당)
- 강좌 URL : http://www.gurubee.net/lecture/1480
- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^
- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.