1. 논리적 구조와 물리적 구조 비교



Tablespace : 우리가 OS에서 볼수 있는 파일(.dbf) 하나의 데이터 베이스는 1개 이상의 파일로 구성될수 있다.

Oracle data block : OS에서 디스크를 포멧할때 블럭을 지정할수 있는데. 이때 오라클 블럭과 같게 해야 좋은 성능을 낼수 있다. (4k, 8k)



2. 논리적 구조



Tablespace : 데이터베이스
Segment : 오브젝트(인덱스, 테이블)
Extent : 연속된 블럭
Block : 데이터 공간의 최소 단위



3. 블럭의 구성



  • Common and variable header : 블럭의 헤더(기본 정보 저장)
  • Table Directory : 클러스터를 만들때 여러 오브젝트가 공유될수 있다. 이때 오브젝트를 구분할때 사용된다.
  • Row directory : row의 위치값 저장
  • Free space : 사용되지 않은 공간
  • Row data : 저장되어 있는 row

※ transaction slots : Default로 header에 2개를 가지며 개당 23byte의 크기를 가진다. 역할은 블럭의 row를 사용할때 transaction slots에 기록하여 block를 사용할수 있다. 만약 2개 모두 사용할경우에는 free space에 임시로 transaction slots를 만들어서 사용한다. free space에 공간의 여유가 없다면 대기하게 된다. (기본값을 바꿀수있다 initrans)