728x90
# LARGE POOL
l Large pool 의 역할
- 병렬 작업을 하기위한 메모리 영역
- Rman으로 백업과 복구를 수행했을 떄 사용하는 메모리 영역
- 예 : SQL> select /*+ parallel(emp,4) */ ename, sal
from emp
where job='SALESMAN';
- 낮에 중요한 오라클 메모리 영역 : database buffer cache 영역(db_cache_size), 그림의 온라인 영역
- 밤에 중요한 오라클 메모리 영역 : larget pool(large_pool_size), 그림의 일괄 처리 작업
l 위의 메모리 사이즈 관리 작업을 자동화 하는 기능이 오라클에 무엇인가?
- ASMM(automatic Shared Memory Management) 기능
l ASMM 기능을 쓰려면 어떻게 해야되는가?
- 10g 버전 : sga_target 파리미터를 0이 아닌 값으로 설정
- 11g 버전 : memory_target 파라미터를 0이 아닌 값으로 설정
- 예: SQL> show parameter memory_target
SQL> show parameter memory_target NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ memory_target big integer 404M |
n 메모리 사이즈 확인하는 텍스트
-- Oracle Database 10g: Administration Workshop II -- Oracle Server Technologies - Curriculum Development -- -- ***Training purposes only*** -- ***Not appropriate for production use*** -- PROMPT *** Current parameter settings *** col name format a12 col value format a8 show parameter sga_ PROMPT PROMPT *** SGA Dynamic Component Size Information*** col component format a22 col current_size format a15 col min_size format a15 SELECT component,current_size/1048576||'M' current_size, min_size/1048576||'M' min_size FROM v$sga_dynamic_components WHERE component IN ('shared pool','large pool', 'java pool','DEFAULT buffer cache'); col name format a20 col value format a20 PROMPT *** Current parameter settings in V$PARAMETER *** SELECT name, value, isdefault FROM v$parameter WHERE name IN ('shared_pool_size','large_pool_size', 'java_pool_size', 'db_cache_size'); |
l 메모리 사이즈 확인 수행
- 텍스트 수행결과 아래처럼 large pool과 java pool의 메모리 사이즈를 확인할 수 있다
SQL> @sga *** Current parameter settings *** NAME TYPE VALUE ------------------------------------ ----------- ------------------------------ sga_max_size big integer 404M sga_target big integer 0 *** SGA Dynamic Component Size Information*** COMPONENT CURRENT_SIZE MIN_SIZE ---------------------- --------------- --------------- shared pool 144M 144M large pool 4M 4M java pool 4M 4M DEFAULT buffer cache 64M 64M *** Current parameter settings in V$PARAMETER *** NAME VALUE ISDEFAULT -------------------- -------------------- --------- shared_pool_size 0 TRUE large_pool_size 0 TRUE java_pool_size 0 TRUE db_cache_size 0 TRUE |
l 자바 메모리 관리
- 아래의 자바 소스를 돌려면 메모리가 부족하게 되는데 자동으로 메모리 사이즈를 늘리는 것을 확인할 수 있다
-- Oracle Database 10g: Administration Workshop II -- Oracle Server Technologies - Curriculum Development -- -- ***Training purposes only*** -- ***Not appropriate for production use*** -- -- This scripts creates many java stored procedures -- in the HR schema. set echo on DECLARE i NUMBER; v_sql VARCHAR2(200); BEGIN FOR i IN 1..200 LOOP -- Build up a dynamic statement to create a uniquely named java stored proc. -- The "chr(10)" is there to put a CR/LF in the source code. v_sql := 'create or replace and compile' || chr(10) || 'java source named "SmallJavaProc' || i || '"' || chr(10) || 'as' || chr(10) || 'import java.lang.*;' || chr(10) || 'public class Util' || i || ' extends Object' || chr(10) || '{ int v1=1;int v2=2;int v3=3;int v4=4;int v5=5;int v6=6;int v7=7; }'; EXECUTE IMMEDIATE v_sql; END LOOP; END; / |
SQL> SELECT component,current_size/1048576||'M' current_size, min_size/1048576||'M' min_size FROM v$sga_dynamic_components - 현재 잡혀있는 메모리 사이즈를 확인하는 뷰 WHERE component IN ('shared pool','large pool', 'java pool','DEFAULT buffer cache'); COMPONENT CURRENT_SIZE MIN_SIZE ---------------------- --------------- --------------- shared pool 144M 144M large pool 4M 4M java pool 20M 4M - java pool 이 4M 에서 20M 으로 변했다 DEFAULT buffer cache 48M 48M |
l 자동 메모리 관리 기능을 끄는 명령어
- memory_target = 0 설정
- shared_pool_size = 140m
- db_cache_size=60m
- larget_pool_size=4m
- java_pool_size=4m
l momory_target 파라미터는 2가지 메모리를(SGA, PGA) 같이 관리한다
- SGA 관리 파라미터 : SGA_TARGET
- PGA 관리 파라미터(solt 작업) : PGA_AGGREGATE_TARGET
l 많은 양의 정렬작업을 해야 한다면 아래와 같이 작업을 해야 빨리 수행할 수 있다
(정렬에 대한 메모리 자동화 기능을 끄고 수동으로 작업해야 한다)
- workarea_size_policy를 munual로 바꾸면 각각의 세션에 할당된 메모리를 사용하고 있는 유저에게 모두 할당한다
SQL> grant dba to sh;
SQL> connect sh/sh
SQL> alter session set workarea_size_policy = manual;
- 정렬작업에 대한 사이즈 관리를 수동으로 하는 명령어
- alter session : 이 변경된 파라미터를 내 세션에서만 적용하도록 한다
SQL> alter session set sort_area_size = 10;
- 정렬 하는 메모리 사이즈를 10바이트로 하는 명령어
SQL> set timing on;
SQL> create table sales100 as
select * from sales;
SQL> create index sales_100 on sales100(amount_sold, prod_id);
- 과도한 정렬작업을 수행
SQL> drop index sales_100;
SQL> connect sh/sh
SQL> alter session set workarea_size_policy = manual;
SQL> alter session set sort_area_size = 1000000000;
SQL> create index sales_100 on sales100(amount_sold, pord_id);
'빅데이터과정 > WORKSHOP 2 ' 카테고리의 다른 글
#30_140724_WSHOP2_오렌지 실행계획 오류 (0) | 2014.07.25 |
---|---|
#30_140724_WSHOP2_REPORT (0) | 2014.07.25 |
#30_140724_WSHOP2_SHARED POOL (0) | 2014.07.25 |
#30_140724_WSHOP2_ORACLE MEMORY (0) | 2014.07.25 |
#29_140723_WSHOP2_AUTOMATIC DIAGNOSTIC REPOSITORY (0) | 2014.07.23 |