Steady Mind For My Life

https://github.com/jongseok3910/Spring-Study

Oracle

오라클의 메모리 관리(PGA & SGA)

함탕 2023. 10. 3. 22:12
728x90
728x90

오라클이 사용하는 메모리 영역은 크게 PGA, SGA로 구분된다.

오라클 PGA & SGA 구성도

PGA(Program Global Area)

1. 특정 프로세스만이 사용하는 메모리영역

서버 프로세스는 각각 'PGA'라는 별도의 메모리 공간을 갖고 있다.

프로세스에 할당된  PGA는 해당 프로세스만 사용할 수 있으며

프로세스 간에 공유되지 않는다.

ex: 내 개인 계정으로 접속 했다면 나한테만 할당되는 프로세스 

 

2. PGA의 구성 요소

a. 세션메모리

세션 정보를 저장하기 위해 사용됨.

 

b. Private SQL Area

SQL 실행 시의 정보를 보관하고 정렬 등의  SQL 작업을

수행하기 위해 사용됨.

* SQL작업은 Private SQL Area 내의 SQL Work Areas에서 수행된다.

 

*서버프로세스는 RDBMS 원격 접속시 사용되는 Listener와 연관이

있으니 나중에 자세히 설명 하겠다!

 

SGA(System Global Area)

1. 프로세스 간에 공유해야 하는 데이터를 보관하기 위한 메모리영역

인스턴스가 기동할 떄 자동으로 확보된다.

SGA에 보관된 데이터는 모든 서버 프로세스 및 백그라운드

프로세스에 공유된다.

 

2. SGA의 구성 요소

a. 공유풀

데이터 블록 이외의 공유 가능한 데이터를 임시로 보관하기 위한

메모리 영역.

 

라이브러리 캐시, 딕셔너리 캐시, 리절트 캐시로 구성되어 있고

라이브러리 캐시에 파싱된 SQL정보와 컴파일된 PL/SQL 코드

저장되어 있다.(영구보관X)

 

*파싱된 SQL 정보

라이브러리 캐시에 보관돼 있는 SQL과 동일한 SQL이 다시

수행됐을 때 오라클은 파싱 시간을 단축하기 위해 이미 공유 풀 내에 

파싱된 SQL의 정보를 이용.

(바인드 변수를 사용하는 이유 중 하나)

 

*아래 글과 연관있으니 참고

2023.07.18 - [Archive] - 쿼리 처리 원리

 

쿼리 처리 원리

SQL의분석 SQL은 자바 같은 프로그래밍 언어와 달리 실행하기 전에 문법적인 에러를 검출할 방법이 없다. (자바는 컴파일 할 때 문법적에러를 검출 할 수 있다) 그래서 SQL을 실행하기 전에 분석을

hamutang.tistory.com

 

b. 라지풀

프로세스 간 통신이 필요한 특정 처리에서 사용하는 메모리 영역

 

c. 자바풀

오라클 JVM을 실행할 때 사용하는 메모리 영역

 

d. 데이터베이스 버퍼 캐시

블록을 보관하는 메모리 영역, 읽어 온 블록을 보관해 캐시로 사용하고

변경된 블록을 보관하는 버퍼 역할도 있음

 

* 쿼리수행 시 한번 읽어온 데이터는 데이터베이스 버퍼 캐시에 올려둔다.

이렇게 되면 Disk(물리적) I/O를 줄일 수 있어서 시간단축에 도움이 된다.

 

버퍼캐시 & 데이터 파일(Disk)

** 데이터를 가지고 올때 항상 Disk(데이터 파일)에서 읽는 것이 아닌

DB buffercache를 거쳐 원하는 데이터를 찾으면 그대로 반환,

못찾으면 Disk에서 데이터를 찾는다.

Disk에서 데이터를 찾게 되면 그만큼 시간이 늘어나기 때문에

데이터베이스 쿼리 성능 향상(튜닝)시 Disk I/O를 줄이는 것이 

중요 핵심이 된다.

 

e. Redo 로그 버퍼

Redo 로그 파일에 기록되지 않은 Redo데이터를 보관하는

메모리 영역

변경이력도 Redo로그파일에 바로 반영되는 것이 아닌

버퍼에 쌓아두었다 어느시점에 Redo로그파일에 반영한다.

 

*LGWR백그라운드 프로세스가 

REDO데이터를 REDO로그파일에 기록한다.

2023.08.17 - [Archive] - 데이터베이스와 인스턴스(1)

 

데이터베이스와 인스턴스(1)

오라클의 데이터베이스와 인스턴스 구성도 데이터베이스 데이터베이스는 한 개 이상의 데이터 파일과 두개 이상의 REDO 로그 파일 한 개 이상의 컨트롤 파일로 구성되어있다. 파일종류 저장되는

hamutang.tistory.com

 

이 외에 다른 구성요소들도 있지만 내 기준 중요하다 싶은 요소만 적었다.

728x90
300x250

'Oracle' 카테고리의 다른 글

REDO 로그 파일 & REDO 데이터(2)  (0) 2023.10.18
REDO 로그 파일 & REDO 데이터(1)  (0) 2023.10.15
데이터베이스와 인스턴스(2)  (2) 2023.08.27
데이터베이스와 인스턴스(1)  (0) 2023.08.17
인덱스  (0) 2023.07.31