개요
오라클 데이터 아키텍처에서 다루었던 PGA 영역에 대해서 보다 깊이 있는 이해를 위하여 정리한다. PGA는 유저마다 독립적으로 할당되는 메모리 영역으로 다른 유저가 접근할 수 있는 개인적인 공간이다.
PGA의 주요 구성 요소
PGA는 여러 하위 메모리 영역으로 구성된다. 각 영역은 데이터 베이스와 유저 간의 세션 관리, SQL 쿼리 실행, 커서 관리 등 여러 기능을 수행한다. 주요 영역은 다음과 같이 정리할 수 있다.
1. 세션 메모리 영역(Session Memory Area) :
- 사용자가 데이터베이스에 접속하면 해당 사용자를 위한 세션이 생성된다.
- 세션 정보, 로그인 정보, 세션 상태 등이 저장된다.
- 불필요한 연결은 추가적인 메모리를 사용하므로 관리가 중요하다.
2. 개인 SQL 영역(Private SQL Area) :
- 이 영역은 영속 영역과 런타임 영역으로 나누어진다.
- 영속 영역(Persistent area): 쿼리에 사용되는 바인드 변수의 값을 유지한다.
- 런타임 영역( Runtime area): 쿼리의 실행 상태를 기록하며, 어느 정도의 작업이 진행되었는지를 관리한다.
3. 커서 영역(Cursor Area)
- 커서와 관련된 모든 정보가 이 영역에 저장된다.
- SQL 명령이 커서로 변환되어 처리되는 과정에서 필요한 정보들이 포함된다.
4.SQL 작업 영역(SQL Work Area)
- 디스크에서 읽어온 데이터를 처리하는 영역이다.
- 정렬 영역, 해시 조인 작업, 비트맵 병합 및 생성 작업 등 네 가지 하위 영역으로 구분된다.
- 쿼리의 ORDER BY, GROUP BY 등의 명령에 따라 데이터를 정렬하거나 조작한다.
PGA의 중요성 및 메모리 관리
PGA의 크기 설정은 데이터베이스 성능에 직접적인 영향을 미친다. 메모리가 충분하지 않으면 처리 성능이 저하되며 적절한 메모리 할당은 성능을 크게 향상시킬 수 있다.
*이 글은 Udemy SQL Tuning MasterClass 강의 내용 정리 글입니다
'DB&SQL' 카테고리의 다른 글
오라클 아키텍처 - Buffer Cachey, Redo Log Buffer, Undo (0) | 2024.05.13 |
---|---|
오라클 데이터 베이스 아키텍처 - Shared Pool (0) | 2024.05.12 |
오라클 SQL튜닝 - 데이터베이스 블록 (0) | 2024.05.09 |
TIBERO - jdbc-11022 values are from incompatible data types (0) | 2024.05.08 |
오라클 데이터베이스 아키텍처 (0) | 2024.05.07 |