=========================================================================================
1. 저장영역 매개변수(Create Table/Cluster/Index/RollBackSegment/TableSpace등등에서 사용)
=========================================================================================
a. Initial
- Segment가 생성될때 할당될 때 첫번째 확장영역의 바이트 크기
- 기본:5 datablock, 최소:2 datablock, 최대:OS마다 틀림
- 킬로미터와 메가바이트를 나타내는 K,M을 사용가능하다.
- 2 DataBlock보다 작은값은 DB_Block_Size 매개변수에 따라 데이터블록 크기의 다음 배수로
반올림된다.
- 예를들어 데이터 블록 크기가 2048 바이트라면 테이블스페이스의 Initial저장영역의 기본값은
10240바이트가 된다. 이 DataBase에서 TableSpace를 생성하고 initial을 20000바이트라고 하면
자동으로 20480(10 데이터블록)으로 반올림된다.
b. Next
- Segment에 대해 할당된 다음영역의 증가량의 바이트 크기
- 두번째 확장영역은 NEXT의 원래 크기와 동일하며 다음부터의 NEXT는
(1+PCTINCREASE/100)과 Next의 이전크기를 곱한 크기로 설정된다.
c. MAXEXTENTS
- 첫번째 확장영역을 포함한 전체확장 영역의 개수의 최대값
- 기본:OS에 따라 다름, 최소:1, 최대:무제한
d. MINEXTENTS
- Segment가 생성될때 할당되는 전체확장영역의 개수
- 기본:1 , 최소:1, 최대:OS마다 다름
- 값이 1보다 크면 INITIAL, NEXT, PCTINCREASE를 사용하여 생성할 때 지정한 수만큼의 증가된 확
장 영영이 할당됨
- RollBack Segment에 대한 MINEXTENTS값은 2임.
e. PCTINCREASE
- SEgment에 할당된 마지막 증가량의 확장영역에 대해 각 증가량의 확장영역이 믈어날 비율
- 기본:50(%), 최소:0(%), 최대:OS마다 틀림
- 0이면 모든 확장영역의 크기는 동일
- 0보다 크면 NEXT가 계산될때마다 PCTINCREASE만큼 늘어난다. 음수는 될수없다.
- RollBack Segment에 대한 PCTINCRESE는 0이다.
- Segment의 PCTINCREASE를 변경하면 시그먼트의 현재 NEXT값은 변경되지 않으며 이후의 NEXT 값들이 영향을 받음
f. INITRANS
- 동시에 DataBlock의 행을 Access하는 초기 Transaction 입력항목에 대해 미리 할당된 영역을 예약
- Table에 대한 기본값은 1, 클러스터와 인덱스는 2
g. MAXTRANS
- 다중 트랜잭션이 동시에 동일한 블록에 있는 행을 Access할 때 블록의 각 Transaction입
력항목에 대한 영역이 할당됨.
- INITRANS에 의해 예약된 영역이 고갈되면 추가 Transaction 입력항목에 대한 영역은 사
용가능한 블록의 빈영역에 할당된다. 일단 할당되면 이영역은 블록헤더의 영구적인 부분
이 된다. 따라서 MAXTRANS를 사용하여 데이터 블록의 Transaction입력항목에 대해 할
당할수 있는 빈영역을 제한할수 있다.
- MAXTRANS값이 너무 작으면 이 한계값에 의해 중단된 Transaction은 다른 Transaction
이 완전히 수행하고 빈 트랜잭션 입력항목 영역이 생길 때 까지 기다려야 한다. 즉
MAXTRANS가 3이고 4번째 Transaction이 세개의 Transaction에 의해 이미 Access되고
있는 블록을 Access하려고 하면 , 세개중 하나가 Commit되거나 RollBack될때까지 기다
려야 한다.
- 기본값은 블록크기에 대한 운영체제에 따른 함수이며, 최대 255를 초과하지 않는다.
h. 저장영역 매개변수의 사용예
- create table emp (
emp_id varchar2(4) not null,
emp_nm varchar2(12) null,
…)
pctfree 10
pctused 50
storage
(initial 100k next 100k
minextents 2 maxextents 10 pctincrease 0);
- 매개변수의 수정은 Table인 경우 아래와 같이 한다.
Alter table emp storage (next 50k);
오라클자바커뮤니티에서 설립한 개발자교육6년차 오엔제이프로그래밍 실무교육센터
(오라클SQL,튜닝,힌트,자바프레임워크,안드로이드,아이폰,닷넷 실무개발강의)
댓글 없음:
댓글 쓰기