코딩하는 문과생

[SQL] Oracle, Oracle 튜닝, 오라클 메모리 구조 본문

프로그래밍/SQL

[SQL] Oracle, Oracle 튜닝, 오라클 메모리 구조

코딩하는 문과생 2020. 4. 12. 21:01

오라클 메모리 구조

: Instance[ Memory(SGA) + Process(PGA) ] + Database

 

SGA(Shared Global Area)

  • Oracle Server가 시작될 때마다 시스템 전역 영역이 메모리에 할당 된다.
  • 오라클 DBMS에 대한 데이터와 제어정보를 갖고 있는 공유메모리 구조의 그룹니다.
  • SGA의 데이터는 여러 사용자 간에 공유된다.

 

Shared Pool

- Shared SQL Area(library cache): 나중에 다시 사용될 경우를 대비 ex. SQL, Parsing SQL, 실행계획 등 

- Dictionary Cache: 제어정보를 포함 ex. 데이터베이스 구조, 사용자 참조 정보, 사용자 권한 등

 

Database Buffer Cache

  1. Database I/O를 줄이기 위해 DB복사본을 메모리에 로드한다.
  2. 동시 접속된 사용자들은 이를 공유하여 Access한다.
  3. 캐시실패(메모리에 없어서 디스크로부터 데이터를 읽는다), 캐시 적중(메모리에서 데이터를 읽는다.)이 있다. 
  4. 캐시 적중율을 높이는 것이 중요한 튜닝포인트다.

 

Redo Log Buffer

  1. 데이터베이스 복구에 목적이 있다.
  2. DB의 모든 변경된 정보를 가지고 있다. 
  3. 바로 Redo Log File(DB)에 접근하면 I/O 과부하가 발생한다. 따라서 버퍼를 두는 것이다.

 

Process

필수 프로세스

오라클 인스턴스를 실행하기 위한 필수 프로세스다.

  • PMON: 비정상적으로 종료된 프로세스를 관리한다. 
  • SMON: 인스턴스 자동 복구, 필요없는 공간 회수, 메모리 정리 등 시스템을 관리한다.
  • DBWR: Data Buffer Cache에 있는 내용을 DB에 있는 Data file에 저장하는 기능
  • RGWR: Redo Log Buffer에 있는 내용을 Redo Log File에 저장하는 기능

기타프로세스

SNP, LCK, RECO, CKPT(CheckPoint)

 

 

서버프로세스

1. 구문분석: 구문상 정확서, 보안, 최적화 체크

2. 실행: Parse Tree를 데이터에 적용

3. 인출: 필요하다면(seelct) 결과 반환

 

유저프로세스(엄밀히 말해서 오라클DB 구조가 아니다.)

응용프로그램 

 

Files

Control Files

데이터베이스 구조를 기술하는 작은 크기의 이진파일 ex. 데이터베이스 이름

데이터베이스의 Mount, Open, Access시 필요

 

Parameter File

파라미터 파일

ex. Shared Pool size, DB block size 등