본문 바로가기

CS/DataBase

(ORACLE) 오라클의 데이터 구조

가변 길이 데이터를 관리하기 위한 프로그램

오라클의 데이터 구조는 어째서 이렇게 복잡한 것일까?

관리할 데이터가 수시로 변하기 때문에

 

그럼 어떨때 문제가 발생하는 것일까?

  • 큰 데이터 변경을 시도할때 
  • 데이터를 동시에 처리할 때
  • 테이블에 많은 데이터가 존재할때(데이터 관리 및 비어 있는 공간 관리)

 

 

 


그렇다면 어떻게 데이터를 관리해야할까?

  • 관리 및 I/O의 효율을 고려해 공간을 어느 정도의 크기로 뭉쳐서 할당
  • 데이터 변경에 필요한 공간을 확보
  • 비어 있는 공간을 관리

 

오라클의 데이터 구조

물리구조 : 데이터 파일 등의 OS에서 보이는 구조를 의미

논리구조 : OS에서는 식별할 수 없는 오라클 내부의 구조를 의미

 

익스텐트 : 연속된 블록의 집합

- 익스텐드의 도움으로 각 블록의 위차가 아니라 각 익스텐드의 첫 위치와 블록의 개수만으로 데이터를 관리할 수있으며 관리정보도 줄일 수 있다.

 

세그먼트 :많은 데이터를 보관하기 위한 구조

 

- 익스텐트의 집합

 

테이블스페이스 : 세그먼트를 분류해서 보관하기 위한 상자

 

 


블록안의 공간

오라클은 블록 안에 데이터 변경에 대비해서 여분의 공간을 남겨둡니다.

- 데이터를 꽉꽉채워서 넣는 것이 아님

  • 세그먼트 단위로 빈 블록을 관리
  • 세그먼트 안에 공간이 모자란 상황이 생기면 세그먼트에 새로운 익스텐트를 추가하고 빈 블록을 늘린다.

 

'CS > DataBase' 카테고리의 다른 글

(MySQL) MyISAM Storage 엔진  (0) 2020.02.16
(MySQL) 스토리지 엔진  (0) 2020.02.16
(ORACLE) SQL 문 분석과 공유 풀  (0) 2019.12.05
(ORACLE) PARTITION BY 의 활용  (0) 2019.12.04
(ORACLE) 다중 LIKE 검색  (0) 2019.12.03