오라클 서버의 메모리 영역이다.
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
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 |