가변 길이 데이터를 관리하기 위한 프로그램
오라클의 데이터 구조는 어째서 이렇게 복잡한 것일까?
관리할 데이터가 수시로 변하기 때문에
그럼 어떨때 문제가 발생하는 것일까?
- 큰 데이터 변경을 시도할때
- 데이터를 동시에 처리할 때
- 테이블에 많은 데이터가 존재할때(데이터 관리 및 비어 있는 공간 관리)
그렇다면 어떻게 데이터를 관리해야할까?
- 관리 및 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 |