Oracle 데이터 블록 구조와 세그먼트 관리

오라클은 대용량 데이터 처리 및 열/행 구조에 따라 효율성을 높이기 위해 아래와 같은 방식으로 저장합니다.
👉 테이블 생성 시 데이터 저장 구조
테이블 생성 시 데이터를 저장하기 위한 세그먼트(Segment) 생성하며, 테이블 스페이스는 여러 세그먼트를 포함됩니다.
👉 데이터 저장 방식
테이블은 행(Row)으로 구성되며, 행은 데이터베이스 블록에 저장합니다.
행 조각(Row Piece): 특정 상황에서 하나의 행이 여러 블록에 나뉘어 저장됩니다.
👉 조각 저장 위치
같은 블록 내부에서 연결되거나(블록 내 체인화) 다중 블록 간에 저장될 수 있습니다.

데이터 베이스 블록을 살펴보면 크게 블록 헤더, 사용 가능 영역(Free Space), 행 데이터 영역으로 나뉩니다.
👉 블록 헤더
블록 헤더에는 세그먼트 유형(테이블이나 인덱스 등), 데이터 블록 주소,테이블 디렉토리, 행 디렉토리, 블록의 행을 수정할 때 사용되는 각각 23바이트 정도의 트랜잭션 슬롯이 포함됩니다.
👉 행 데이터
블록에 있는 행의 실제 데이터, 행 데이터 공간은 맨 아래부터 위쪽으로 확장
👉 사용 가능 영역
블록 중앙에서 상단의 헤더와 하단의 행 데이터가 유연하게 늘어날 수 있도록 돕는 완충 공간입니다. 이 영역은 값이 큰 데이터로 갱신되어 행의 크기가 커질 때, 새로운 행 삽입으로 인해 행 디렉토리 슬롯이 추가될 때, 그리고 동시 작업 증가로 더 많은 트랜잭션 슬롯이 필요할 때 양방향으로 확장되며 공간을 동적으로 할당합니다.
'데이터베이스' 카테고리의 다른 글
| [데이터베이스] 실시간 메모리 vs 물리적 장부: 다이나믹 뷰(V$)와 딕셔너리 (0) | 2026.01.29 |
|---|---|
| [데이터베이스] NOMOUNT에서 OPEN까지: 오라클 인스턴스 기동 단계별 장애 포인트 체크 (0) | 2026.01.29 |
| [데이터베이스] 오라클 물리 저장소의 핵심: Control File부터 데이터 블록 체인화 (1) (0) | 2026.01.29 |
| [데이터베이스] 오라클 데이터베이스 구조 탐색 (2) (0) | 2026.01.22 |
| [데이터베이스] 오라클 데이터베이스 구조 탐색 (1) (1) | 2026.01.22 |