본문 바로가기

Computer Science/Database

그림으로 공부하는 오라클 구조 - Ch7. 오라클의 데이터 구조

728x90

  • 익스텐트는 ‘연속된’ 블록의 집합으로 익스텐트의 위치와 블록 개수로 관리를 하여 관리 정보를 줄이는 역할을 한다.(블록 개별로 관리하면 많아서)
  • 세그먼트는 익스텐트의 집합이다. 사용자(개발자)가 생성하는 테이블, 인덱스 등 이외에 undo 세그먼트, 정렬 세그먼트 등이 있다.

  • 데이터 파일 안에는 서로 다른 세그먼트들의 서로 다른 익스텐트들이 혼재해 있다. 즉 물리적으로 같은 세그먼트의 데이터들이 모여있는 것이 아니다.
  • 테이블 스페이스는 세그먼트를 분류하여 보관하기 위한 공간. 한 개 이상의 데이터 파일로 구성되어 있다.
  • 세그먼트는 ‘PCTFREE’와 ‘PCTUSED’ 파라미터를 사용하여 세그먼트 내의 빈 블록 공간을 점검하고 관리한다. 세그먼트 안에 공간이 부족하면 ‘익스텐트’를 추가하여 빈 블록을 늘린다.
  • ROWID : 데이터 행의 주소로, 데이터 파일 번호, 블록 번호, 행 번호 등의 정보로 구성되어 있다.
  • 테이블 스페이스가 가진 여유 공간이 부족할 때는 데이터 파일 확장 또는 데이터 파일 추가 작업을 해야 한다.

 

  • OS 블록과 Oracle 블록은 서로 매핑되어 있는 것이 아니다.
    • Oracle block은 오라클이 OS에게 요청하는 IO의 가장 작은 단위이다.
    • OS block은 OS의 read/write의 가장 작은 단위이다.
    • Oracle block 단위가 8kb 이고 OS block 단위가 4kb일 때, 오라클의 8kb 만큼의 데이터를 읽어오는 요청을 OS에게 보내면 OS는 8kb 만큼의 데이터 요청을 4kb로 각각 분해하여 동작할 것이다.

728x90