티스토리 뷰

안녕하세요 강정호입니다.

 

오늘은 데이터 파일구조에 대해서 공부해보겠습니다.

 

데이터파일 구조

참고링크 : http://www.gurubee.net/lecture/2391

데이터 파일에는 블록, 익스텐트, 세그먼트, 테이블 스페이스 4개가 존재한다.

 

1) 블록(=페이지 - SQL SERVER)

- 데이터를 읽고 쓸떄의 논리적인 단위

- SQL 성능을 좌우하는 가장 중요한 성능지표

항목 오라클 SQL SERVER
명칭 블록 페이지
블록크기 2KB,4KB, 8KB, 16KB, 32KB, 64KB 8KB

오라클에서는 블록의 크기가 다양하게 존재한다.

 

2) 익스텐트

- 테이블 스페이스로부터 공간을 할당하는 단위

- 균일익스텐트(Uniform)

   - 64KB 이상의 공간을 필요로 하는 테이블이나 인덱스를 위해 사용됨

   - 8개 페이지 단위로 할당된 익스텐트를 단일 오브젝트가 모두 사용

- 혼합익스텐트(Mixed)

  - 한 익스텐트에 할당된 8페이지를 여러 오브젝트가 나누어 사용

  - 모든 테이블이 처음에는 혼합 익스텐트로 시작하지만 64KB가 넘으면서 두번째부터는 균일익스텐트로 사용

 

3) 세그먼트

 - 테이블, 인덱스, Undo 처럼 저장공간을 필요로 하는 데이터베이스 오브젝트(1개 이상의 익스텐트 사용)

 - 파티션은 오브젝트와 세그먼트가 1:M( 파티션을 만들면 내부적으로 여러개의 세그먼트가 만들어진다)

 - 한 세그먼트에 할당된 익스텐트가 여러 데이터파일에 흩어져 저장됨(디스크 경합감소, IO 분산효과)

 

4) 테이블 스페이스

 - 세그먼트를 담는 콘테이너로서 여러개의 데이터파일로 구성됨

 - 사용자는 데이터파일을 직접 선택할 수 없으므로, 실제 파일을 선택하고 익스텐트를 할당하는 것은 DBMS의 몫

 

 

DB 버퍼캐시

- 데이터파일로부터 읽어들인 데이터 블록을 담는 캐시영역

- 사용자 프로세스는 서버 프로세스를 통해 DB 버퍼 캐시의 버퍼 블록을 동시에 엑세스

- 특정 상황을 제외하면, 모든 블록 읽기는 버퍼 캐시를 통해 이루어짐

- 디스크에서 읽을 때도 버퍼캐시에 적재한 후 읽음

- 버퍼의 상태 : Free buffer, Dirty buffer, Pinned buffer

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

댓글