Oracle/Admin2009. 11. 10. 22:01

SGA

오라클 서버의 메모리 영역이다.

SGA는 Oracle의 인스턴스에 대한 데이타와 제어 정보를 가지는 공유 메모리 영역의 집합이다.

사용 목적의 따라 오라클 파라미터 파일(init.ora)의 조정으로 SGA의 각 부분의 크기를 
조절 할 수 있다.
(initSID.ora 파일의 large_pool_size=8388608,    shared_pool_size=50331648 이렇게 사이즈가 지정되어 있다)

Oracle9i부터 오라클 서버의 종료 없이 SGA의 구성을 SGA_MAX_SIZE 파라미터 값 범위 내에서만 각각의 
크기를 동적으로 변경 가능하다

Oracle 서버를 동시에 사용하고 있는 사용자는 시스템 글로벌 영역의 데이타를 공유한다.

구성요소로는
   - 공유풀(Shared Pool)
   - 데이터베이스 버퍼캐쉬(Database Buffer Cache)
   - 리두로그버퍼(Redo Log Buffer)
   - 라지풀(Large Pool)
   - 자바풀(Java Pool)
이렇게 5가지가 있다.


공유풀(Shared Pool)
  - Library Cache와 Data Dictionary Cache로 구성
  - 하나의 데이터베이스에 행해지는 모든 SQL문을 처리하기 위해 사용
  - 문장을 실행하기 위해 그 문장과 관련된 실행계획과 구문 분석 정보가 들어있음
  - Shared Pool의 사이즈는 SHARED_POOL_SIZE 파라미터 값으로 결정함.

  Library Cache
    - 가장 최근에 사용된 SQL문장의 명령문과 구문분석 트리, 실행계획 정보를 가지고 있다.
    - Shared SQL과 Shared PL/SQL영역으로 구분되어 있다.
       - Shared SQL 영역 : 
             SQL문장에 대한 실행계획과 파싱트리를 저장하고 공유
             동일한 문장의 다음번에 실행되면 Shared SQL 영역에 저장되어 있는 실행계획과 파싱트리를 그대로 이용하기
             때문에 SQL문장의 처리속도는 향상됨

       - Shared PL/SQL 영역 : 
             가장 최근에 실행한 PL/SQL 문장을 저장하고 공유함
             파싱 및 컴파일 된 프로그램 및 프로시져(함수, 패키지, 트리거)가 저장됨
                                  
  Data Dictionary Cache
     - 테이블, 컬럼, 사용자 이름, 사용 권한 같은 가장 최근에 사용된 데이터 사전의 정보를 저장하고 있음
     - 구문 분석 단계에서 서버 프로세스는 SQL문에 지정된 오브젝트 이름을 찾아내고 접근 권한을 검증하기 위해
        Dictionary Cache의 정보를 찾아봄


데이터베이스 버퍼캐쉬(Database Buffer Cache)
  - 가장 최근에 사용된 데이터 블럭을 저장하는 메모리 공간. 이 버퍼는 아직까지 디스크에 완전히 쓰여지지 않는
     수정된 데이터를 보유할 수도 있음.
  - LRU알고리즘에 의하여 가장 오래전에 사용된 것은 디스크에 저장하고 메모리에는 가장 최근에 사용된 데이터를
    저장함으로, 디스크 입출력이 줄어 들고, 데이터베이스 시스템의 성능이 증가됨.

    ※ LRU 알고리즘 : 최근에 사용된 블록을 유지하기 위해 오래된 것을 제거하는 알고리즘.


리두로그버퍼(Redo Log Buffer)
  - 데이터베이스에서 일어날 모든 변화를 저장하는 메모리 공간
  - DB에서 발생한 모든 변화는 LGWR에 의해 리두 로그 파일에 저장
  - 데이터베이스의 변경 사항 정보를 유지하는 SGA에 있는 Circular(순환) 버퍼임
  - 리두로그버퍼의 크기는 오라클 파라미터 LOG_BUFFER에서 지정함

자바풀(Java Pool)
  - 자바로 작성된 프로그램을 실행할 때 실행 계획을 저장하는 영역 입니다
  - JAVA_POOL_SIZE 파라미터로 관리되며, 기본 크기 24MB가 할당됨.

라지풀(Large Pool)
  -  Oracle 백업 및 복원 작업에 대한 대용량 메모리 할당, I/O 서버 프로세스 및 다중 스레드 서버와 Oracle XA에
      대한 세션 메모리를 제공하는 SGA의 선택적인 영역
  - LARGE_POOL_SIZE 파라미터로 관리되며, 기본 크기는 0bytes임.


출처 : http://oracleclub.com/oraclelecture.action?lectureType=ADMIN

'Oracle > Admin' 카테고리의 다른 글

Query 실행순서(select)  (0) 2009.11.19
Oracle Architecture  (0) 2009.11.18
isql*plus에서 dba유저 로그인 설정  (0) 2009.11.16
SQL문의 처리 단계  (0) 2009.11.14
리스너에 여러 포트를 사용하고 싶을 때 추가 방법  (0) 2009.10.21
Posted by 자수성가한 부자