1.1 필수 키워드

DBMS의 목적

1. 병렬 처리와 높은 처리량

2. 응답시간 중요

3. commit데이터는 보호

 

1.2 오라클과 디스크

- 오라클은 데이터는 디스크에서 읽어오고, 디스크에 기록함

- 디스크는 아래와 같이 생김

- 디스크의 원판이 돌아가고, 뾰족한 헤드가 움직여서 데이터를 읽고 기록함

 

 

 

 

 

 

 

 

 

1.3 디스크의 동작

- 디스크는 빠른 속도로 회전함, 빠르게 돌지만, 메모리의 속도에 비하면 매우 매우 느린 속도임

- 디스크에 데이터를 읽고 쓰려면 두가지 동작이 필요 1) 탐색, 2) 회전대기

1) 탐색 : 헤드를 필요한 데이터가 있는 쪽으로 이동

2) 회전 대기 : 디스크의 회전해서 원하는 데이터가 올 때까지 기다림

- 오라클은 디스크를 이용하므로, 처리시간 단축을 위해서는 디스크 I/O가 제일 중요함

 

1.3.1 I/O시간을 줄이는 방법

- 시퀀셜 액세스 : 시작점에서부터 마지막까지 중간 부분을 빠뜨리지 않고 전부 읽기/쓰기, 테이블 풀 스캔

- 인덱스 : ROWID를 가지고 있음, ROWID는 디스크 상의 실제 테이블의 레코드를 찾기 위한 논리적 주소

 

1.3.2 인덱스 사용

- 인덱스를 조사 > ROWID를 얻음 > 디스크에서 데이터를 얻음

- 인덱스는 Tree구조로 되어 있음

 

1.3.3 랜덤 액세스

- 인덱스를 사용하면 ROWID를 활용해서 디스트에서 필요한 부분만 읽어오면 충분하므로, 시퀀셜 액세스를 하지 않고, 랜덤 액세스함

- 랜덤 액세스를 하면 매번, 탐색+회전 대기를 거쳐야 하는 비효율적인 부분이 있음

 

=> 인덱스를 사용하여 데이터를 조회할 때에는 큰 테이블에서 아주 적은 데이터만 조회할 때 사용해야 함(전체 데이터의 5%~20%), 많은 데이터를 하나하나 인덱스를 사용해서 랜덤 액세스를 하는 것은 오히려 더 느려지고, 그냥 풀 스캔이 더 빠름

 

1.4 데이터 보증을 위한 디스크

- 데이터는 오라클의 프로세스가 비정상 종요되어도 무사해야 함 (commit 한 데이터는 보호)

- 오라클은 데이터 변경 후 commit 하면 데이터를 디스크에 기록함

'DATABASE > oracle' 카테고리의 다른 글

Oracle 메모리 (undo, redo, archive)  (0) 2023.06.04
Parallel Processing  (0) 2023.06.04
[Oracle] 9. REDO와 UNDO  (0) 2021.07.23
[Oracle] 3. 캐시와 공유 메모리  (0) 2021.07.12
[Oracle] 2. 오라클의 여러 프로세스  (0) 2021.07.12