Oracle DB 데이터 저장 단위

kmb·2022년 11월 16일
0

DB

목록 보기
3/10
post-thumbnail

논리적 저장 단위

크기가 큰 순서대로 테이블스페이스(TableSpace) > 세그먼트(Segment) > 익스텐드(Extend) > 데이터블록(Data Block) 로 나뉜다.

 

테이블스페이스(TableSpace)

세그먼트를 담는 컨테이너로서 여러개의 데이터파일로 구성된다.

정의된 크기만큼 테이블스페이스가 생성되면 데이터가 그 크기를 넘을때 까지 지정된 크기를 유지한다.
만약 정의된 크기보다 큰 데이터 입력이 생길경우 자동으로 크기가 확장된다.

 

  • 테이블스페이스 생성 방법
경로 : C:\dbStudy\oraData\myOracle

-문법
create tablespace 테이블스페이스명
datafile '경로\테이블스페이스 파일명.dbf'
size 초기용량
[autoextend on] 
[next 자동증가용량]
[maxsize unlimited];

-예시
create tablespace myts
datafile 'C:\dbStudy\oraData\myOracle\myts.dbf'
size 100m
autoextend on
next 5m;

 

세그먼트(Segment)

TableSpace에 저장되는 Object 단위.
table이나 index를 생성할 때 데이터를 어떤 TableSpace에 저장할지를 지정한다.

 

  • 세그먼트(Segment)의 특징
  1. 하나의 TableSpace에는 다수의 세그먼트를 저장 할 수 있다.

  2. 하나의 세그먼트가 다수의 TableSpace에 나뉘어 저장될 수 없다.

  3. 하나의 세그먼트는 다수의 데이터 파일에 나누어 저장될 수 있다.
    단 그 데이터 파일들이 같은 TableSpace 내부에 할당되어 있는 경우에만 가능하다.

 

익스텐드(Extend)

공간을 확장하는 기본단위(byte)이며 연속된 데이터 블록의 집합이다.

table이나 index에 데이터를 입력하다가 공간이 부족하면 해당 Object가 속한 TableSpace로부터 익스텐트를 추가로 할당받는다.

 

데이터 블록(Data Block)

사용자가 입력한 레코드를 실제로 저장하는 곳. Oracle DB를 구성하는 최소 단위(bit)
한 block은 하나의 table이 독점한다. 즉, 한 익스텐트에 담긴 block은 모두 같은 table block이다.

 

출처

  • 오라클 SQL과 PL/SQL을 다루는 기술 (책)
profile
꾸준하게

0개의 댓글