2017. 7. 2. 21:34
oracle SGA 영역 C. Oracle2017. 7. 2. 21:34
▣ SGA란? - 오라클 서버의 메모리 영역.(오라클 서버가 실행될때마다 SGA가 메모리에 할당) └>Oracle의 인스턴스에 대한 데이타와 제어 정보를 가지는 공유 메모리 영역의 집합 - 오라클 파라미터 파일(init.ora)의 조정으로 SGA의 각 부분의 크기를 조절 (initSID.ora 파일을에서 large_pool_size=8388608, shared_pool_size= 50331648) - Oracle9i부터 오라클 서버의 종료없이 SGA의 구성을 SGA_MAX_SIZE 파라미터 값 범위 내에서만 각각의 크기를 동적으로 변경 가능 합니다. - Oracle 서버를 동시에 사용하고 있는 사용자는 시스템 글로벌 영역의 데이타를 공유 - 전체 시스템 글로벌 영역을 실제 메모리가 허용하는 범위에서 가장 크게 잡으면, 디스크 I/O를 줄이고 메모리에 가능한 많은 데이타를 저장할 수 있으므로 최적의 성능을 낼 수 있습니다. - SGA의 구성 : Shared Pool (공유 풀), DataBase Buffer Cache (데이터베이스 버퍼캐쉬), Redo Log Buffer(리두로그 버퍼), Large Pool, Java Pool |
1. 공유 풀(Shared Pool) ▣ Shared Pool은 Library Cache(=Shared SQL Area) 와 Data Dictionary Cache 로 구성. ▣ Shared Pool은 하나의 데이타베이스에 행해지는 모든 SQL 문을 처리하기 위하여 사용 됩니다. ▣ Shared Pool은 문장을 실행하기 위해 그 문장과 관련된 실행 계획과 구문분석 정보가 들어 있습니다. ▣ Shared Pool의 사이즈는 SHARED_POOL_SIZE 파라미터 값으로 결정합니다. ① Library Cache (= Shared SQL Area) - 가장 최근에 사용된 SQL 문장의 명령문과, 구문 분석 트리, 실행계획 정보를 가진다 - Sql문장 하나를 실행하는데에 이용된 정보를 갖고 있으며 동일한 Sql문장을 실행하는 프로세스간에 정보를 공유할수 있다. 단,완전히 동일한 문장만 같은 메모리에 위치한다. (대소문자 다른문장 인식) ② Data Dictionary Cache - 데이타베이스와 그 구조(테이블,컬럼..),사용자에 대한 참조정보를 갖고 있는 데이타베이스 테이블과 뷰의 집합이다 - 구문 분석 단계에서 서버 프로세스는 SQL문에 지정된 오브젝트 이름을 찾아내고 접근 권한을 검증하기 위해 Dictionary Cache의 정보를 찾는다 |
2. 데이터베이스 버퍼 캐쉬(DataBase Buffer Cache)
▣ 디스크에서 읽은 데이타 블록의 복사본을 저장하는 메모리 공간입니다. ▣ 동시 접속한 사용자들은 데이타베이스 버퍼 캐쉬를 공유하여 Access 한다. ▣ LRU 알고리즘에 의하여 가장 오래전에 사용된 것은 디스크에 저장하고 메모리에는 가장 최근에 사용된 데이타를 저장 함 ▣ 캐시 실패: 데이타를 처음 Access하는 것이라면 서버 프로세스는 디스크로부터 데이타 를 읽어서 캐시에 올린다. 캐시 적중: 데이타를 Access할 때 이미 캐시에있다면 메모리에서 직접 데이타를 읽는다. 캐시적중률(Hit Ratio) : 85%~90% 정도를 유지하는것이 좋다. ▣ 크기결정: DB_BLOCK_SIZE * DB_BLOCK_BUFFERS |
3. 리두 로그 버퍼(Redo Log Buffer) ▣ 리두 로그 버퍼는 데이터베이스에서 일어난 변경정보를 저장하는 메모리 공간 입니다. ▣ DB에서 발생한 모든 변화는 LGWR에 의해 리두 로그 파일에 저장 합니다. ( 변화가 있을때마다 리두로그 파일에 저장하면 속도에 문제가 있기때문에 리두로그 버퍼에 저장 했다가 일정한 시점이 되면 리두로그버퍼에서 피두로그 파일로 저장을 한다. ) ▣ Redo Log Buffer의 크기는 오라클 파라미터 LOG_BUFFER에서 지정합니다. |
4. Java Pool과 Large Pool 1) Java Pool - Java Pool은 자바로 작성된 프로그램을 실행할 때 실행 계획을 저장하는 영역 입니다. - Java Pool은 JAVA_POOL_SIZE 파라미터로 관리되며, 기본 크기 24MB가 할당 됩니다. 2) Large Pool - Large Pool은 Oracle 백업 및 복원 작업에 대한 대용량 메모리 할당, I/O 서버 프로세스 및 다중 스레드 서버와 Oracle XA에 대한 세션 메모리를 제공하는 SGA의 선택적인 영역입니다 - Large Pool은 LARGE_POOL_SIZE 파라미터로 관리되며, 기본 크기는 0bytes 입니다. |
'C. Oracle' 카테고리의 다른 글
oracle 10g 설치 linux (0) | 2017.07.02 |
---|---|
oracle 10g XE설치 (0) | 2017.07.02 |
oracle 조인 (0) | 2017.07.02 |
oracle DDL (0) | 2017.07.02 |
oracle 기본쿼리 사용하기 (0) | 2017.07.02 |