Large Pool


사용 목적
Large Pool 은 필수 메모리 영역은 아니지만 Shared Pool 의 부하를 감소시키는 등 몇가지 성능에 영향을 주기 때문에 지정해서 사용하는 편이 좋다.


1. Shared Server (= MTS : Multi Thread Server) 
Shared Server 를 사용하면 Server Process 는 UGA (User Global Area)를 Shared Pool에 위치 하고 사용한다.


2. Parallel Processing (병렬 프로세싱)
대용량의 데이터에 Access할 때 성능을 위해 병렬작업을 이용하게 된다. 하나의 SQL을 수행시에 동시에 여러개의 process가 동작하게 되는데 Thread으로 동작하는 프로세스간에 메시지를 이용하여 Thread 동기화를 이뤄낸다. 이 때 이 메시지를 PX MSG(
PARALLEL EXECUTION MESSAGE) 이라 하고 Shared Pool 을 사용하여 서로 메시지를 주고 받게 된다.

- Large Pool 을 사용하고 PARALLEL_AUTOMATIC_TUNING 초기화 파라미터를 true 설정.

10g 문서에   PARALLEL_AUTOMATIC_TUNING  은 더이상 사용하지 않은 파라미터로 명시되어 있다.
만약  spfile을 사용중일 때 ALTER SYSTEM SET PARALLEL_AUTOMATIC_TUNING = true scope=spfile 이렇게 했다면 재시동시 ORA-32004: obsolete and/or deprecated parameter(s) specified  ( deprecated  파라미터를 사용해서 발생)에러가 발생한다. 이때는 false 으로 바꿔도 소용없고 pfile을 생성하여 PARALLEL_AUTOMATIC_TUNING  항목을 아에 제거해야 한다.



3. I/O server processes
DBWn Process 는 I/O 작업을 여러개의 Slave Process 를 동작시켜 빠르게 수행한다. 이때 Slave Process 사이에서도 PX MSG를 사용하게 되는데 Shared Pool 을 사용한다.


4. RMAN 
백업 복구를 위한 RMAN 은 Large Pool 을 필요로 한다. 또한 I/O 발생시 다수의 Slave Process 를 사용하게 되므로 PX MSG 를 주고받는다. 
 Large Pool 사용 설정
 - BACKUP_DISK_IO=n
 - BACKUP_TAPE_IO_SLAVE = TRUE





설정

-
SQL> SELECT * FROM V$SGASTAT WHERE pool = 'large pool'
-- 수정 전 
POOL         NAME                            BYTES
------------ -------------------------- ----------
large pool   PX msg pool                    206208
large pool   free memory                   3988096

SQL> alter system set large_pool_size = 20m;
-- 수정 후
POOL         NAME                            BYTES
------------ -------------------------- ----------
large pool   PX msg pool                    206208
large pool   free memory                  20765312
-





'Oracle > Architecture' 카테고리의 다른 글

Block Cleanout  (0) 2012.05.15
선 로그 기법  (0) 2012.05.15
다중 Block SIZE  (0) 2012.04.12
SORT와 PGA_AGGREGATE_TARGET  (2) 2012.04.10
[Storage - 3] Segment  (0) 2012.01.27