오라클 성능 고도화 원리와 해법 I (2016년-2)
기본 아키텍처 0 0 4,765

by 구루비 아키텍처 [2016.11.26]


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 풀을 사용하여 지나친 메모리 사용을 막아줄 필요가 있다.

"구루비 DB 스터디 모임" 에서 2016년에 "오라클 성능 고도화 원리와 해법 I " 도서를 스터디하면서 정리한 내용 입니다.

- 강좌 URL : http://www.gurubee.net/lecture/3136

- 구루비 강좌는 개인의 학습용으로만 사용 할 수 있으며, 다른 웹 페이지에 게재할 경우에는 출처를 꼭 밝혀 주시면 고맙겠습니다.~^^

- 구루비 강좌는 서비스 제공을 위한 목적이나, 학원 홍보, 수익을 얻기 위한 용도로 사용 할 수 없습니다.

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입