컴퓨터 공학/Oracle DBMS

I/O과 디스크의 관계

ITISIK 2020. 12. 14. 23:34
반응형


이 글은 「그림으로 공부하는 오라클 구조」를 읽고 공부한 내용을 요약한 것입니다.


DBMS의 복잡성은 3개의 키워드로 인해서 기인된다.

 

1. 병렬처리(높은 처리량)로 작업을 수행한다.

2. 응답(Response)을 중시한다.

3. COMMIT 한 Data는 지킨다.


오라클은 DBMS로 생각할 수 있으며,

오라클이 관리하는 디스크에 들어있는 데이터는 DB로 생각할 수 있다.


데이터가 저장되는 것을 일종의 LP 혹은 CD/DVD로 생각하자.

사실 하드디스크의 내부 구조를 알고 있다면,

하드디스크를 떠올리는 것이 가장 이해하기 편하다.

 

찾고자 하는 특정 데이터가 존재하는 곳에

액츄에이터가 닿아야 그 데이터를 읽거나 쓸 수 있는데

이때 그 특정 위치를 찾는 것을 트랙찾기라고 하며,

다른 말로는 시크(Seek)라고 한다.

 

이러한 Seek에는 특정 자기헤드의 위치를 찾는 것뿐만 아니라

동일 자기헤드 상에서도 디스크가 회전하여

특정 위치에 도달하기를 기다리는 시간이 필요할 수 있는데,

이러한 대기시간 때문에 작업 처리가 지연되는 것이다.


순차 접근(Sequential Access; S.A.)

시작지점부터 끝지점까지 중간에 누락없이 전부 엑세스(접근; 읽기/쓰기)하는 것을 의미한다.

Full Scantl, Memory에 Data가 없다면 S.A.가 발생한다.


인덱스(Index) = 색인

인덱스는 2가지 요소를 포함하는 말이다.

1. SQL의 WHERE 절에 적는 조건의 값(색인시 사용하는 Key값)

2. Key값이 존재하는 위치(Row ID)

 

만약 인덱스 테이블이 커지면 도로 비효율적이게 될까?

답은 No, 여전히 효율적이다.

 

블록(일정한 크기의 Data 구조)을 최소단위로 하는 트리구조를 하고 있기 때문.

예를들어 처음에는 가가호호, 해피 두가지였던 인덱스 테이블이

다양한 단어들을 포함한 인덱스 테이블로 변하게 되면,

ㄱ - ㄷ

ㄹ - ㅂ

.

.

.

와 같은 식으로 1차 분류,

 

1차 분류의 첫 번째 블록을 열어보면,

가-깋

나-닣

다-딯

.

.

.

와 같이 2차 분류.... 와 같은 식으로 토막내어 저장하기에 여전히 인덱스를 활용하는 것이 빠르게 된다.


Random Access(R.A.) 「반」 S.A.

- OLTP 시스템 (Online Trasaction Processing)

- IOPS : 초당 가능한 I/O 횟수


COMMIT을 수신하면, Data를 Disk에 기록한다.

반응형