SGA란 System Global Area의 약자로 오라클에서 인스턴스를 형성하시 위한 공유 메모리 시스템
SGA는 Shared Pool(공유풀), DB 버퍼 캐시, Large pool, Java Pool 등으로 구성
1. Shared Pool (공유 풀)
SGA에서 두번째로 큰 메모리 영역. Library cache, Data dictionary cache, 시스템 파라미터 등 다양한 종류의 캐쉬를 포함
Library Cache(라이브러리 캐시)
SQL 및 PL / SQL 문을 저장하는 데 사용. SQL이 실행될 때 라이브러리 캐시에 존재하는 명령문이 있으면 데이터베이스를 재사용하고 (Library cache hit) 그렇지 않으면 DB는 새 애플리케이션 코드를 작성(library cache miss).
라이브러리 캐시에는 공유 SQL 영역과 프라이빗 SQL 영역 존재. 공유 SQL 영역은 첫 번째 SQL 발생을 처리하고나면 모든 사용자가 공유. 하나의 고유한 명령문에는 오직 하나의 공유 sql 영역만 존재. 개인 SQL 영역은 고유 한 사용자 세션에 할당 된 비공유 메모리. 많은 개인용 SQL을 동일한 공유 SQL 영역에 연결할 수 있음.
Data dictionary cache (딕셔너리 캐시)
딕셔너리 캐시는 사용자 이름, 테이블 스페이스, 세그먼트, 테이블 정의, 인덱스, 뷰 등 메타 데이터에 대한 정보 저장. DDL이 사용되거나, 명령문이 parse되거나 더 많은 extents가 필요할 때 사용
Server Result cache:
데이터 블록 대신 sql 쿼리 결과 캐시, pl/sql 함수 결과 세트 저장.
Reserved pool
큰 연속 메모리 할당용
2. Database buffer Cache
DB 버퍼 캐시는 데이터 파일에서 불러온 데이터 블록을 저장. 블록 관리를 위해 둘 이상 버퍼풀로 나뉨.
사용자는 버퍼 캐시에 대한 액세스 공유 가능.
DB 버퍼 캐시의 주요 목적은 lazy write를 통해 디스크 I/O를 최소화하여 성능 향상시키는 것. 즉 디스크 대신 자주 액세스 하는 블록 유지. 사용되지 않은 버퍼수가 적으면 데이터베이스가 버퍼 캐시에서 버퍼 제거.
3. Large pool
Large pool은 옵션 메모미. 공유 서버에 대한 UGA, 명령문 병렬 실행에 사용되는 메세지 버퍼, I/O용 버퍼, 백업 및 복구를 위해 RAM제공.
Large Pool과 Reserved pool의 차이점은 Large pool은 LRU(Least Recently Used) list를 가지고 있고 reserved pool은 공유풀에서 LRU list 사용
4. Java pool
Java Virtual Machine내의 자바 코드 및 데이터 포함. 자바 코드 parsing, 태스크 설치, 프로시저 parsing 등에 사용.
출처:
https://docs.oracle.com/database/121/CNCPT/memory.htm#CNCPT1233
https://www.skillbuilders.com/Tutorials-V2/ora9i_DBA_Arch_Memory/img13.html
'IT Tool Box' 카테고리의 다른 글
갤럭시 S10 강제종료, 안전 모드로 부팅하는 방법 (0) | 2020.07.10 |
---|---|
갤럭시 S7 무한재부팅 + 갤럭시 S10 언락폰 구매 후기 (1) | 2020.05.23 |
남(친)이 산 닌텐도 스위치 매우 주관적 후기(feat 디아블로3) (1) | 2020.05.06 |
오라클 12c 아키텍처 컨트롤 파일-Control file (0) | 2020.05.06 |
CentOS 8 설치 "Section %packages does not end with %end. Pane is dead” 에러 (0) | 2020.04.24 |