DB&SQL

오라클 데이터 아키텍처 - PGA

초롱불 2024. 5. 11. 12:07

개요

오라클 데이터 아키텍처에서 다루었던 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 강의 내용 정리 글입니다