Create Table 시 Storage Option 은 다음과 같습니다.
예시)
CREATE TABLE
TEST(
AA VARCHAR2(3),
BB NUMBER(5),
CC VARCHAR2(10)
)
TABLESPACE PRODUCE
INITRANS 1
MAXTRANS 4
STORAGE ( INITIAL 10M
NEXT 10M
MINEXTENTS 1
MAXEXTENTS 121
PCTINCREASE 0
FREELISTS 1
FREELIST GROUPS 2
)
PCTFREE 10
PCTUSED 40
;
l
INITRANS
(DEFAULT 1)
– Block 공간
할당시에 한 BLOCK에 지정한 개수 만큼의 Transaction
Slot(ITL)을 할당할
공간을 예약하게 된다.
– BLOCK HEADER에 더 이상 TRANSACTION ID를 기록할 공간이 없을 경우 BLOCK의 DATA 영역에 여유공간에 기록한다.
l
MAXTRANS
– 한 BLOCK에서 동시에 발생할 수 있는 최대 Transaction Slot(ITL)의 개수
– 해당 BLOCK의
HEADER 및 DATA 영역에 더 이상 기록할 공간이 없을 경우 TRANSACTION은 WATING 상태로 된다.
l
INITIAL
– INITIAL EXTENT의 SIZE
l
NEXT
– INCREMENTAL EXTENT의 SIZE
l
MINEXTENTS
(DEFAULT 1, Rollback Segment 는 2)
– 최소한 가질 수 있는 EXTENTS의 수 (최소값 1)
l
MAXEXTENTS
– 최대한 가질 수 있는 EXTENTS의 수
– MAXEXTENTS까지 발생했을때 응급조치를 위해서 100 이상 넘지 않는 게 좋다.
l
PCTINCREASE
(DEFAULT 50)
– NEXT EXTENT 발생 시 증가 비율
– 되도록 0을 준다.
l
FREELISTS
(DEFAULT 1)
– SEGMENT HEADER 에 보관/관리되는 FREE
LIST의 개수를 지정.
l
FREELIST
GROUPS (DEFAULT 1)
– FREELIST의 GROUP 수.
– 주로 OPS(Oracle Parallel Server)에서 INSTANCE의 수 만큼 설정해 준다.
l
PCTFREE
(DEFAULT 10)
– BLOCK에서 Size 가 증가하는 UPDATE 를 위해서 남겨둘 공간의 퍼센트
– 남은공간의 비율이 지정한 값보다 작아지면 해당 블록은 FREELIST에서
삭제됨
– Size 가 증가하는 UPDATE 가 많이 발생할 경우 크게 준다.
– 작게 주면 공간활용도가 높아짐
l
PCTUSED
– Insert 불가능 BLOCK 이 DELETE 작업으로 인해 사용공간의 비율이 지정한
것보다 작아지게 되면 FREELIST에 다시 등록되어 Insert 가능한 Block 으로 된다
– INSERT/DELETE 가 반복적으로 발생할 경우는 작게 준다.
– 크게 주면 공간활용도가 높아짐
(예)
PCTFREE = 10 ,
PCTUSED = 40 일 경우 사용하는
BLOCK의 공간이 10%이하로 남으면 그 BLOCK은 FREELISTS에서 지워지고 더 이상 INSERT를 할 수 없게
된다. 그 후 그 BLOCK에 DATA가 많이
DELETE되어서 40% 미만으로 사용하고 있으면 그
BLOCK은 다시 FREELISTS에 등록이 되어
INSERT를 할 수 있는 BLOCK이 된다.