오라클 데이터베이스 관리자 기초- (8)저장 영역 구조 및 관계 2

2020. 1. 13. 14:32Security/oracle database

데이터 베이스 블록 내용

- 행 하나는 기본 블록 사이즈보다 큰 경우가 아니면 블록 하나에 저장되어야 한다.

- 트랜잭션 슬롯이 확보되지 않으면 트랜잭션을 일으킬 수 없다. 

- 블록 내에서는 공간이 있음에도 없다고 판단하는 절편화(=단편화((Fragmentation)) 현상을 방지하기 위한 compress가 자동으로 진행된다.

- 블록은 I/O의 최소단위라서 블록을 통째로 읽기때문에 data내에서 행의 위차가 바뀌는 것은 상관없다.

 

INITRANS

- 트랜잭션 슬롯(인덱스나 데이터 블록에 동시에 엑세스 가능한)의 초기 갯수 지정

 

MAXTRANS

- 트랜잭션 슬롯의 최대 갯수, 예를들어 3개의 트랜 잭션 슬롯이 사용될 경우 그 다음 insert, update 명령은 기대해야 한다. 

 

PCTFREE

- 블록의 빈 공간 지정. 만약 블론의 빈 공간이 하나도 없을 경우 행이 더 크게 갱신되지 못한다. 

-  low migration 현상을 일으키지 않기 위해 여유 공간을 지정한다.

 

*low migration

데이터가 갱신될때 공간이 부족해서 행이 이전되면 주소가 바뀌기때문에 rowID 값도 수정해야 하고 rowID값이 저장된 인덱스도 수정해야 해서 공간 낭비, 성능 저하의 현상이 일어난다.

 

PCTUSED

- 사용 하기 위한 블록의 최소 공간 지정 

- 기존의 데이터가 삭제되서다시 공간이 남아도 PCTUSED의 설정값보다 작아져야 free list로 등록된다.