IT/ORACLE

1.1 SGA

08Gattuso 2023. 12. 20. 23:11

 데이터베이스 시작 시 할당되는 중요한 공유 메모리 구조

 이는 전체 Oracle 인스턴스에 대한 데이터 및 제어 정보를 보유하며 모든 서버 및 백그라운드 프로세스에서 액세스할 수 있음.

 각 구성 요소는 데이터베이스의 메모리와 리소스를 효율적으로 관리하는 특정 목적을 수행.


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

 - 자주 액세스하는 데이터를 메모리에 저장하여 디스크 I/O를 최소화하기 위해 데이터 파일에서 읽은 데이터 블록을 캐시

 - 디스크에서 데이터를 반복적으로 읽어야 하는 필요성을 줄여 쿼리 처리 속도를 높이는 데 도움



2. 공유 풀

 - SGA의 공유 풀은 라이브러리 캐시와 데이터 딕셔너리 캐시로 구성

  2.1 라이브러리 캐시

   - 구문 분석된 SQL 문, 실행 계획, PL/SQL 코드를 저장하여 자주 실행되는 쿼리에 대한 구문 분석 오버헤드를 줄임.

  2.2 데이터 딕셔너리 캐시

   - 데이터베이스 개체, 권한, 사용자 계정 정보 등에 대한 메타데이터를 포함하는 데이터 사전 정보를 저장


3. 리두 로그 버퍼

 - SGA의 이 영역은 데이터베이스에 대한 변경 사항을 기록하는 리두 로그 항목을 임시로 저장

 - 리두 로그 버퍼는 이러한 변경 사항을 디스크의 리두 로그 파일에 쓰기 전에 캡처. 이는 데이터베이스 복구 및 트랜잭션 로깅에 도움


4. 대형 풀(선택 사항)

 - 선택 사항인 이 구성 요소는 병렬 실행 버퍼, 백업 및 복원 작업, I/O 서버 프로세스와 같은 대규모 할당을 위해 메모리를 할당하는 데 사용


5. Java Pool(선택 사항)

 - SGA 내의 또 다른 선택 영역인 Java Pool은 Oracle 데이터베이스 내에서 Java 코드를 관리하고 실행하는 데 사용


 이러한 구성 요소의 크기는 Oracle 초기화 매개변수 파일(init.ora 또는 spfile)에서 데이터베이스 관리자(DBA)가 설정한 특정 초기화 매개변수에 의해 결정

 데이터베이스 성능을 최적화하려면 이러한 메모리 구조의 크기를 구성하는 것이 중요합니다. DBA는 워크로드와 시스템 요구 사항에 따라 이러한 구성 요소 간에 메모리 할당의 균형을 맞춰야함


SGA는 Oracle 인스턴스에 연결된 모든 사용자와 세션에서 공유. 디스크 I/O를 줄이고 SQL 문의 중복 구문 분석을 최소화하며 자주 액세스하는 데이터를 메모리에 저장하여 성능을 향상.


요약하면 Oracle 인스턴스의 SGA(시스템 전역 영역)는 데이터 캐싱, 메타데이터 저장, SQL 실행 계획 관리 및 리두 로그 정보 처리를 담당하는 다양한 구성 요소를 포함하는 공유 메모리 구조.

 최적의 데이터베이스 성능을 유지하려면 SGA의 적절한 구성과 관리가 필수적입니다.