1.기본 구조

오라클의 기본 아키텍쳐 구조는 디스크를 사용하는 데이터베이스 영역, 메모리상에서만 존재하는 인스턴스 영역으로 나뉜다.

(1) 메모리 공간을 사용하는 이유

디스크를 경유한 입출력(I/O)은 물리적으로 액세스 암(arm) 이 움직이면서 헤드를 통해 데이터를 읽고 쓰는 반면 메모리 캐시를 통한 입출력은 전기적 신호에 불과하기 때문에 디스크 I/O 에 비해 비교할수 없이 빠르다.

(2) 오라클의 I/O 단위

오라클은 I/O 단위로 블락을 사용한다. DB 생성 시 정할 수 있으며 추후 변경할 수 없다. 블락 사이즈가 다를 경우 export/import 같은 작업시 문제가 발생된다 (컬럼사이즈 조절로 해결할수 있지만 한두개가 아닌 컬럼들을 일일히 수정하는건 번거로운 작업이다.)
sqlplus 에선 다음과 같은 명령어로 자신의 block size 를 알 수 있다.


SQL> show parameter block

(3) 서버프로세서와 백그라운드 프로세스

서버프로세스는 사용자가 SQL 문을 실행하면 해당 되는 값을 네트워크를 통해 전송하는 작업을 하고 그외의 일들은 백그라운드 프로세스가 처리해준다.

2. 접속방식

사용자가 DB에 접속하게 될 시 리스너에 연결 요청을 하며 리스너는 하나의 프로세스를 띄우고 PGA 메모리를 할당한다.
이는 비용이 매우 큰 작업이므로 어플리케이션을 구축할 때 connection 풀을 사용하여 지나친 메모리 사용을 막아줄 필요가 있다.