Overview of Primary Components
Oracle Instance
- Oracle Database 에 연결하는 것을 의미한다.
- 항상 하나의 DB에 한 개의 Instance 가 Open 됨
- Memory structures 와 Background Process structures 로 구성됨.
Oracle Memory Structure
- Oracle 의 메모리 구조는 SGA 와 PGA 로 구성
- System Global Area (SGA) :
→ 인스턴스가 시동되면 할당되고 Oracle Instance 의 주요한 요소
→ 모든 프로세스가 공유
- Program Global area (PGA) :
→ 서버 프로세스가 시작되어지면 할당된다.
→ 사용자별로 생성되어 별도로 사용됨.
→ Parse 작업 수행
System Global Area
- SGA 는 여러 개의 Memory structure 들로 구성됨.
→ Shared Pool
→ Database Buffer Cache
→ Redo Log Buffer
→ Java Pool
→ Large Pool
- SGA_MAX_SIZE parameter 로 변경 가능
Shared Pool
- 최근 실행된 SQL 구문들과 최근에 사용되어진 data 정의들이 저장됨
- 주요 기능을 수행하는 2개의 주요 메모리 구조로 구성되어짐
1. Library Cache
2. Data Dictionary Cache
- SHARED_POOL_SIZE 파라미터로 설정 됨
SQL>alter system set
2 shared_pool_size = 64M;
Library Cache
- 가장 최근 사용 되어진 SQL 과 PL/SQL 들에 관한 정보가 저장됨
- 일반적으로 사용되어지는 구문들의 공유가 가능함
- Soft Parse 과정을 위한 메모리 구조
- LRU Algorithm 에 의하여 메모리 관리가 이루어진다.
- Shared Pool 의 크기에 의해 Library Cache 의 크기가 결정된다.
Data Dictionary Cache
- DB 에서 최근 사용 되어진 사용자 정의들의 집합.
- database file, table, index,column,user,privilege 등에 관한 정보가 포함됨
- Parse 과정에서 서버 프로세스가 접근하게 되는데 이 때 구문의 유효성과 개체 이름을 확인하게 된다.
- Data Dictionary Cache 안에 원하는 정보가 존재 한다면 쿼리와 DML 성능에 향상을 가져오게 된다.
- Hard Parse 를 위한 메모리 구조
- Shared Pool 의 크기에 의해 Library Cache 의 크기가 결정된다.
Database Buffer Cache
- 데이터 파일로부터 검색되어진 Data 블록 들이 복사되어 저장된다.
- 데이터를 검색하거나 Update 할 때 좋은 성능을 얻기 위해 존재한다.
- LRU 알고리즘을 통해 관리된다.
- DB_BLOCK_SIZE 가 블록 사이즈를 결정
-> 8i = 2k
-> 9i = 4k
-> 10g,11g = 8k
- 독립된 서브 캐쉬로 구성됨
-> DB_CACHE_SIZE – Database buffer cache 전체 크기
-> DB_KEEP_CACHE_SIZE – 중요한 Data 를 보관 (LRU 적용 안함)
-> DB_RECYCLE_CACHE_SIZE – 잘 사용되자 않는 Data
- 다음 붉은 두가지 설정은 권장 사항이 아님
- 유동적으로 크기 변경이 가능
SQL>alter system set DB_CACHE_SIZE = 96M;
- DB_CACHE_ADVICE=on/off 는 buffer cache 의 크기를 변경했을 때의 성능을 예측하는 Advisory 기능을 다음 파라미터로 제공함
- 다음의 다이나믹 퍼포먼스 뷰를 통해 확인가능
-> V$DB_CACHE_ADVICE
'Oracle > Admin' 카테고리의 다른 글
Differences between a Connection and a Session (0) | 2011.10.06 |
---|---|
Undo tablespace (1) | 2011.10.05 |