Oracle

게시글 보기
작성자 유건데이타 등록일 2015-05-18
제목 LARGE POOL의 개념 및 사용 방법
ORACLE 8.대의 내용입니다.


LARGE POOL의 개념 및 사용 방법
------------------------------------------------------------------------

1. 개념 및 사용 목적

Oracle8.0에서 large pool이라는 새로운 SGA 내의 구성이 도입되었다. large pool
이란 shared pool과 유사하나 실제 shared pool 내의 일부분을 사용하는 것은
아니고 SGA 내에 직접 할당하며, 이 pool을 사용할 수 있는 작업들을 제한하고 있다.

Oracle8에서 large pool을 사용하는 주요 목적은 다음과 같이 두가지로 볼 수 있다.

- MTS connection에서 session 정보, 즉 UGA를 할당하기 위해서
- sequential file IO의 buffering을 위해서
(예를 들어, multiple I/O slave를 사용하는 경우의 recovery)

MTS connection이 large pool을 사용하는 경우, 일단 fixed UGA라고 하는 부분은
shared large pool을 사용하고, 나머지 session memory(UGA)는 large pool에
할당된다. 만약 large pool이 충분하지 않으면 ORA-4031이 발생한다.


2. 사용 방법

large pool을 지정하기 위해서는 init.ora file 내에 large_pool_size라는
parameter를 사용하고, larlge_pool_min_alloc parameter는 이 large pool에
할당될 최소한의 memory chunk size를 제한한다. 이 large_pool_min_alloc의
값이 클수록 large pool의 fragmentation은 줄어든다.
만약 이 parameter를 지정하지 않으면 large pool은 사용하지 않는다. 그러나 다음
중 하나라도 만족되는 상황에서는 large pool에 관한 parameter가 설정되어 있지
않다 하더라도 Oracle이 자동으로 필요한 large pool을 계산하여 할당하여 사용한다.

- parallel_automatic_tuning = true
- parallel_min_servers=n
- dbwr_io_slaves=n

large pool size에 대한 계산은 다음 값에 의해서 결정된다.
- parallel_max_servers
- parallel_threads_per_cpu
- parallel_server_instances
- mts_dispatchers
- dbwr_io_slaves

이러한 default에 의해 계산된 large pool이 너무 크게 되면, performance에
문제가 생기거나 db startup이 안 될 수 있다. 그러므로 이러한 때에는 적당
한 값의 large_pool_size로 지정한 후 다시 startup하여야 한다.
632 보기 태그:
Comment
등록된 코멘트가 없습니다.