Print Date: 2010-12-12 Oracle Memory DATE : 2010-12-12 06:07 Writer : 박상수 License : 개인자료 CALMMASS.TISTORY.COM - 본문서는모든사람에게열람및수정모두가능합니다 -
버전 수정일 작성자 변경내역 1.0 2010/12/04 박상수 Oracle Memory(PGA, SGA) 개념및관리 1.1 2010/12/06 박상수 Shared Pool 1.5 2010/12/07 박상수 Database Buffer Cache 1.8 2010/12/10 박상수 Redo Log Buffer, Java Pool, Large Pool 2.0 2010/12/12 박상수 최종문서정리 제목 : Oracle Memory... - 2 -
목차 1. 시스템구성... 5 1.1. 개요... 5 1.1.1. 정의... 5 1.1.2. 목적... 5 1.1.3. 환경... 5 2. Oracle Memory Structure... 6 2.1. Oracle Memory 종류... 6 3. PGA(Program Global Area)... 7 3.1. PGA 개념... 7 3.2. PGA 관리... 8 4. SGA(System Global Area)... 10 4.1. SGA 개념... 10 4.2. SGA 관리... 11 4.3. Shared Pool... 13 4.3.1. 라이브러리캐시 (Library cache)... 15 4.3.2. 딕셔너리캐시 (Dictionary cache)... 17 4.3.3. 예약영역 (Reserved Area)... 19 4.3.4. 시스템영역 (Permanent Area)... 19 4.3.5. 구성조회... 19 4.4. DB 버퍼캐시 (DB Buffer Cache)... 20 4.4.1. 블록단위 I/O... 20 4.4.2. 버퍼캐시구조... 20 4.5. 리두로그버퍼 (Redo Log Buffer)... 23 4.6. 대형풀 (Large Pool)... 24 4.7. 자바풀 (JAVA Pool)... 25 5. 참고자료... 26 제목 : Oracle Memory... - 3 -
표목차 표 1 ORACLE DATABASE 접속방법...7 표 2 PGA PARAMETER 설명...8 표 3 동적 / 정적 PARAMETER FILE... 12 표 4 SGA 메모리의크기설명... 12 표 5 SHARED POOL 동적영역... 13 표 6 GRANULE 단위... 14 표 7 예약영역 PARAMETER... 19 표 8 LRU, LRUW 리스트... 22 표 9 LARGE POOL 주요사용목적... 24 제목 : Oracle Memory... - 4 -
1. 시스템구성 1.1. 개요 1.1.1. 정의 - Oracle Database 10g를기준으로문서를작성합니다. - 데이터를조작하고조회할때논리적 / 물리적데이터를주기적으로발생시킨다면성능에큰문제가발생될수있습니다. 그래서메모리에저장해서사용했던문장은재활용할수있게해주는역할을해주는것이 Oracle Memory 입니다. 1.1.2. 목적 - PGA - SGA(Shared Pool, Data Buffer Cache, Redo Log Buffer, Large Pool, JAVA Pool 그외 ) - Memory관련 Parameter 정리 1.1.3. 환경 - OS : Windows 7 Home Premium K - Oracle : Red Hat Enterprise Linux 4 X86 + Oracle Database 10g R2 - 프로세서 : Intel core(tm)2 Duo CPU P8700 - 메모리 : 4G - 시스템종류 : 32비트 제목 : Oracle Memory... - 5 -
2. Oracle Memory Structure 2.1. Oracle Memory 종류 - Oracle 에서사용하는메모리는크게두가지가존재합니다. (PGA, SGA) 그림 1 Memory Structures. 제목 : Oracle Memory... - 6 -
3. PGA(Program Global Area) 3.1. PGA 개념 - PGA는서버프로세스에생성되며 Oracle에서사용하는메모리영역입니다. - 사용자가요청에의하여유저프로세스가생성되며해당유저프로세스는데이터베이스에접속하는순간모든정보를서버프로세스에게전달하게됩니다. 이때요청받은내용및기타정보를저장하기위해서버프로세스는자신만의메모리공간인 PGA를 Oracle에의해할당됩니다. - 각서버프로세스에하나만할당되는 PGA 메모리영역은 SGA 영역과달리다른프로세스와공유되지않는, 각프로세스가독립적으로사용하는 Non-shared 메모리영역입니다. - PGA 구체적인구조를설명하겠습니다. 정렬공간 (Soft Area) 구조 내용 Order By 또는 Group By 등의정렬을수행하기위한공간이며, 해당공간 에서만정렬이완료된다면이를메모리정렬이라고합니다. 하지만메모리 의공간부족으로정렬을해야할경우디스크 (Temp Tablespace) 를이용합 니다. 세션정보 (Session Information) 커서상태정보 서버프로세스에의해추출된결과값을전달하기위해필요한유저프로 세스의세션정보를저장합니다. 해당 SQL 의파싱 (Parsing) 정보가저장되어있는주소를저장합니다. (Curser State) 변수저장공간 (Stack Space) SQL 문장에바인드변수 (Bind Variable) 를사용했을경우바인드변수를저 장하는공간입니다. 예를들면 SQL 문에콜론 (:) 을의미합니다. Ex) SELECT * FROM EMP=:emp 표 1 Oracle Database 접속방법 제목 : Oracle Memory... - 7 -
3.2. PGA 관리 - 이전오라클버전에서는 SORT_AREA_SIZE를설정하여세션별로정해진크기의 PGA를할당하여작업을수행하였습니다. 그라나오라클 9i 및 10g 에서는세션별로정해진 PGA 크기가아닌 PGA_AGGREGATE_TARGET Parameter에정해진크기범위에서세션별로자동으로할당하여메모리를사용할수있게되었습니다. - PGA 크기를관리하는 Parameter를설명하겠습니다. PARAMETER 내용 WORKAREA_SIZE_POLICY Manual과 Auto로설정할수있습니다. Auto로설정했을경우에는 PGA_AGGREGATE_TARGET Parameter를이용하여 PGA의크기를설정하겠다는의미입니다. Manual로설정할경우 SORT_AREA_SIZE Parameter를이용하여정렬공간을설정하게됩니다. PGA_AGGREGATE_TARGET 모든세션의 PGA 크기의합을설정하는 Parameter이며, PGA_AGGREGATE_TARGET Parameter에서지정한크기까지오라클이 PGA를자동으로관리합니다. SORT_AREA_SIZE 정렬공간에대한크기를설정하는 Parameter 입니다. 표 2 PGA PARAMETER 설명 - 현재데이터베이스에하나의유저만접속했다고가정하고 40MB의데이터를정렬하려고한다면 SORT_AREA_SIZE가 40MB보다커야합니다. SORT_AREA_SIZE 10MB라면총 4번의 I/O를발생하게되어성능에문제를발생시킬수도있습니다. 그래서 WORKAREA_SIZE_POLICY Parameter를 AUTO 로설정하고 PGA_AGGREGATE_TARGET Parameter에 50MB로지정한다면 I/O를발생하지않고메모리에서정렬작업을수행하게됩니다. 이를자동 PGA 조정이라고합니다. - 다른유저가 50MB의공간을모두사용하고있을때다른유저가접속하여서버프로세스를생성하려고한다면세션을메모리에할당받지못하므로에러가발생됩니다. 자동으로조정했을경우에는반드시평소유저의접속하는세션수와각세션이사용하는 PGA의크기를정확히파악해서 PGA_AGGREGATE_TARGET Parameter에설정하셔야합니다. 제목 : Oracle Memory... - 8 -
- 평소사용되는 PGA 의크기를확인 그림 2 V$POCESS Parameter 제목 : Oracle Memory... - 9 -
4. SGA(System Global Area) 4.1. SGA 개념 - SGA란 instance의구성요소이며여러서버프로세스들이 Query를수행하기위해공유해서사용하는공간입니다. - SGA 필수요소 Shared Pool Database Buffer Cache Redo Log Buffer - SGA 선택적인요소 Large Pool JAVA Pool Streams Pool(10g용 ) 제목 : Oracle Memory... - 10 -
4.2. SGA 관리 - SGA 변경 (SGA 일부인 Database Buffer Cache 를테스트해보겠습니다.) - SGA 확인 그림 3 DB_CACHE_SIZE 변경 그림 4 SGA 관련 Parameter 제목 : Oracle Memory... - 11 -
- show sga, v$sga, v$sgastat, v$sga_dynamic_components - SGA 구조를변경하는 Parameter File 종류 PARAMETER FILE 내용 정적 Parameter File 데이터베이스가재시작하게되면 Parameter 파일 (PFILE : initsid.ora) 에설정된값을재적용하게됩니다. $ORACLE_HOME/dbs/init[SID].ora 파일은 TEXT 파일이므로 VI 편집기를이용하여 Parameter를변경값을수정합니다. 동적 Parameter File 동적환경파일 (SPFILE :spfilesid.ora) 을사용하는경우 ALTER SYSTEM SET parameter = value scope=spfile 변경할수있습니다. 변경된값이메모리와동적 Parameter 파일에동시에적용되므로데이터베이스재시작후에도변경된값을적용합니다. $ORACLE_HOME/dbs/spfile[SID].ora 파일을사용하며바이너리파일이므로 VI 편집기로수정해서는안됩니다. 표 3 동적 / 정적 PARAMETER FILE - show sga, v$sga 결과값에대한정리 이름 내용 Total System Global Area Fixed Size Variable Size Database Buffers Redo Buffers SGA 총메모리합계 Shared Pool에서고정영역의크기 Shared Pool의일부, Large Pool, JAVA Pool 영역의크기 Database Buffer Cache 영역의크기 Redo Log Buffer 영역의크기 표 4 SGA 메모리의크기설명 제목 : Oracle Memory... - 12 -
4.3. Shared Pool - 고정영역은오라클이관리하는메커니즘및오라클파라미터정보가저장됩니다. 그리고 SQLPLUS 에서 show sga 명령어로부터추출되는값중에서 Fixed Size의값이고정영역의크기입니다. - 동적영역은 Parse 단계에서주로사용되는메모리구성요소입니다. 내부적으로 Library cache와 Dictionary cache(row cache라고도합니다.) 로나눠져있습니다. - 동적영역의메모리구성요소 이름 라이브러리캐시 (Library cache) 내용 Soft parse 할때사용되는공간으로이미수행되었던 SGL 문장이 나 PL/SQL 문장의 parse code 와해당 SQL / PLSQL 문장, 실행계 획 (Execution Plan) 등이저장되어있으며 LRU(Least Recently Used) 알고리즘을사용합니다. 딕셔너리캐시 (Dictionary cache) 구문분석이나 Optimizer 가실행계획을세울때사용되는주요 Dictionary들이저장되어있으며 LRU(Least Recently Used) 알고리즘을사용합니다. 표 5 Shared Pool 동적영역 - Shared Pool 의크기는 shared_pool_size 라는파라미터로설정할수있으며 library cache, Dictionary cache 의크기는각각따로관리하지않습니다. shared_pool_size 파마미터는 DB 를종료하지않아도아래와같이사이즈를변경할수있습니다. 제목 : Oracle Memory... - 13 -
그림 5 Shared Pool 크기변경 - [ 그림 5] SHARED_POOL_SIZE 파라미터의크기를변경하는방법입니다. 하지만자세히살펴보면 SHARED_POOL_SIZE 크기를 12m 으로변경했을경우에는정상적으로변경되지만 10M 로변경할경우크기가변경되지않는것을보실수있습니다. 그것은그래뉼 (granule) 이라는단위로메모리를할당하고해제해서그렇습니다. 예를들면 SGA 총크기는 SGA_MAX_SIZE 라는파라미터에의해제한되는데이파라미터의크기가 1G 보다작거나같으면 1Granule=4M 이고 1G 초과이면 1Granule=16M 가됩니다. 9i 에서는 SGA_MAX_SIZE 사이즈가 128M 를기준으로그래뉼크기가결정됩니다. 쉽게말해서조건에의해서 4 의배수또는 16 의배수로값을정의한다는말과같습니다. 아래와같이버전에따라그래뉼의크기가달라집니다. 버전 Oracle Database 9i 내용 SGA_MAX_SIZE <=128MB 1Granule= 4M SGA_MAX_SIZE > 128MB 1Granule= 16M Oracle Database 10g R1 이상 SGA_MAX_SIZE <=1GB 1Granule= 4M SGA_MAX_SIZE > 1GB 1Granule= 16M 표 6 Granule 단위 제목 : Oracle Memory... - 14 -
4.3.1. 라이브러리캐시 (Library cache) - 사용자가 SQL이라는명령어를통해결과집합을요청하면이를최적으로수행하기위한처리루틴이필요한데, 이를실행계획 (execution plan) 이라고합니다. 빠른쿼리수행을위해내부적으로생성한일종의프로시저와같은것이라고이해하면쉽습니다. - 쿼리구문을분석해서문법오류및실행권한등을체크하고, 최적화과정을거쳐실행계획을만들고 SQL 실행엔진이이해할수있는형태로포캣팅하는전과정을하드파싱 (hard Parsing) 이라고하며, 한번사용한쿼리구문을재사용하는것이소프트파싱 (Soft Parsing) 이라고합니다. 여기에서동일한 SQL로인식하기위해서는다음과같이동일해야합니다. 대, 소문자일치 띄어쓰기일치 오브젝트소유자일치 - SQL에대한반복적인하드파싱을최소화하기위한새로운캐시공간을두는것이라이브러리캐시라고할수있으며라이브러리캐시의최적화원리는캐싱된 SQL과그실행계획의재사용성을높이는데있습니다. - 라이브러리캐시에는실행가능오브젝트뿐아니라거기서참조하는테이블, 인덱스, 클러스터같은 데이터베이스오브젝트정보들도동등하게하나의오브젝트로서관리됩니다. 이를 LCO(Library Cache Object) 라고부르기도합니다. 아래는라이브러리캐시에어떤유형의오브젝트들이적재되는지보여줍니다. 그림 6 Library cache Objects 제목 : Oracle Memory... - 15 -
- Library cache dump 내용을 dump로직접확인가능합니다. $ORACLE_BASE/admin/SID/udump/*.trc 파일들을지우던지아니면다른곳으로옮긴후아래와같은작업을하겠습니다. 덤프파일은 $ORACLE_BASE/admin/SID/udump/ 디렉토리하위에 testdb_ora_4794.trc 파일이생성됩니다. Vi로열어서확인해보시기바랍니다. 그림 7 library_cache Dump file 제목 : Oracle Memory... - 16 -
4.3.2. 딕셔너리캐시 (Dictionary cache) - 테이블, 인덱스같은오브젝트는물론테이블스페이스, 데이터파일, 세그먼트, 익스텐트사용자, 제약, Sequence, DB Link 에관한정보를저장하게됩니다. - 예를들자면사용자가 Sequence 객체를하나만들면오라클딕셔너리에저장되고, 로우캐시를거쳐읽고쓰기가이루어집니다. 사용자가 Sequence 로부터새로운값을인출하기위해 nextval 을호출할때마다로우캐시를통해 update 가이루어집니다. - 딕셔너리캐시의활동성에대한통계를조회해볼수있는뷰가 v$rowcache 인데여기서히트율 (hit ratio) 를조사했을때수치가낮게나오면 Shared Pool 사이즈를늘리는것을고려해볼수있습니다. 그림 8 딕셔너리캐시히트율조사 - v$rowcache 에서 type 의값이 PARENT 인엔트리와 v$latch_children 에서이름이 row cache objects 인래치개수를조회해보면, 항상값이일치하는것을알수있습니다. 즉로우캐시에관리되는엔트리각각에대해하나의래치가할당돼있음을짐작할수있습니다. 그림 9 로우캐시엔트리래치개수확인 제목 : Oracle Memory... - 17 -
- Dictionary cache dump 내용을 dump로직접확인가능합니다. $ORACLE_BASE/admin/SID/udump/*.trc 파일들을지우던지아니면다른곳으로옮긴후아래와같은작업을하겠습니다. 덤프파일은 $ORACLE_BASE/admin/SID/udump/ 디렉토리하위에 testdb_ora_4794.trc 파일이생성됩니다. Vi로열어서확인해보시기바랍니다. 그림 10 Dictionary cache Dump file 제목 : Oracle Memory... - 18 -
4.3.3. 예약영역 (Reserved Area) - 공유풀예약은말그대로공유풀에대한미리공간을예약함으로써메모리조작부족으로인한 SQL 수행실패를방지하기위한방법입니다. - 실무에서많이사용되는아키텍처는아니지만보통기본값 (BIG OBJECT 를위한여분의메모리로기본값은 4400bytes) 으로설정된다. PARAMETER SHARED_POOL_RESERVED_SIZE 내용 공유풀예약공간을설정하지않았다면공유풀예약공간은공 유풀 (SHARED_POOL_SIZE) 크기의 5% 로설정합니다. 공유풀예약공간은공유풀 (SHARED_POOL_SIZE) 크기의 50% 이상설정할수없습니다. 표 7 예약영역 Parameter 4.3.4. 시스템영역 (Permanent Area) - Process, Session, Enqueue, Transaction 등의목록정보. 4.3.5. 구성조회 - Shared Pool 의상세한구성요소를확인하시려면아래와같은 SQL 로조회하시기바랍니다. select name, bytes from v$sgastat where pool='shared pool' order by bytes desc 제목 : Oracle Memory... - 19 -
4.4. DB 버퍼캐시 (DB Buffer Cache) - 오라클이데이터를읽고수정하기위해서디스크에존재하는데이터를읽어저장하는메모리공간입니다. - 기본데이터베이스크기는 DB_CACHE_SIZE 파라메터로결정하며 show sga 명령어로확인할수있습니다. 해당명령어를수행하여추출되는값중 Database Buffer가 DB Buffer Cache의크기입니다. 4.4.1. 블록단위 I/O - 오라클에서 I/O는블록단위로이루어집니다. 메모리버퍼캐시에서버퍼블록을액세스할때블록 I/O 데이터파일에저장된데이터블록을 DB 버퍼캐시로적재할때블록 I/O 캐시에서변경된블록을다시데이터파일에저장할때블록 I/O Single block I/O : 인덱스의경유해테이블액세스시. Multi block I/O : Full Table Scan 시 4.4.2. 버퍼캐시구조 - SGA 내에서는수없이많은자료구조가사용되고있으며그중가장많이사용되는것이해시테이블이고, DB 버퍼캐시도해시테이블구조로관리됩니다. 그림 11 DB Buffer Cache 구조 - Hasing 알고리즘을설명할때주로주소록에비유합니다. 이유는고객의주소와전화번호를관리하는주소록에서성씨가같고고객은같은페이지 ( 해시버킷 ) 에묶어서관리합니다. - DB 버퍼캐시내에서데이터블록을해싱하기위해사용되는키값은데이터블록주소 (Data Block Address) 입니다. 해시함수 ( 나눗셈범을예로키값을해시버킷개수로나누었을때의나머지값 ) 에데이터블록주소를입력해리턴받은해시값 (Hash Value) 이같은블록들을같이해시버킷 (Hash Bucket) 에연결리스트 (Linked List) 구조로연결합니다. 각각의연결리스트를해시체인 (Hash Chain) 이라고합니다. 제목 : Oracle Memory... - 20 -
- 버퍼블록이통째로해시구조에의해관리되는것처럼느낄수있으나실재로는버퍼헤더 (Buffer Header) 만해시체인에연결되며, 실제의데이터값이필요해지면버퍼헤더에있는포인터를이용 해다시버퍼블록을찾아가는구조입니다. 그림 12 해싱알고리즘을이용한버퍼블록찾는방법 - [ 그림 12] 설명을하자면 Hash Table -> Hash Bucket -> Buffer Header chain -> Buffer Header -> Buffer body -> block header -> block body 순으로찾게됩니다. - Working Set 오라클은버퍼캐시를효율적으로사용하기위해두종류의 LRU(Least Recently Used) 리스트를사용합니다. LRU 리스트는가장최근에사용되거나미사용된버퍼들의리스트로프리 (Free, 미사용 ) 버퍼, 사용중 (Pinned) 인버퍼, 사용된버퍼 (Clean) 또는곧 Age Out 될버퍼, 아직 LRUW(Dirty) 리스트로옮겨지지않은더티 (Dirty, 변경된 ) 버퍼등을포함합니다. LRUW(Dirty) 리스트는아직디스크 ( 데이터파일 ) 에기록되지않은변경된 (Dirty한) 버퍼들의리스트를관리합니다. DB 버퍼캐시의모든버퍼들은반드시 LRU 리스트또는 LRUW 리스트둘중에하나에속합니다. 이중에서오라클은리스트스캔의효율성을위해 LRU 리스트나 LRUW 리스트를다시메인리스트 (Main List) 와보조리스트 (Auxiliary List) 로나누어관리합니다. 아래와같이표를참조하세요. 제목 : Oracle Memory... - 21 -
종류 내용 메인리스트 : 사용된버퍼들의리스트, 핫영역과콜드영역으로 LRU 리스트 ( 대체리스트 ) 구분하여관리됩니다. 보조리스트 : 미사용된버퍼들이나, DBWR 에의해기록된버퍼 들의리스트를관리됩니다. LRUW 리스트 메인리스트 : 변경된버퍼들의리스트 보조리스트 : 현재 DBWR 에의해기록중인버퍼들의리스트 표 8 LRU, LRUW 리스트 - [ 표 8] 내용과같이오라클은프리버퍼를탐색시, 우선 LRU 리스트의보조리스트에서프리버퍼를찾습니다. 보조리스트의버퍼가모두사용된경우에는메인리스트의콜드영역에서프리버퍼를찾게됩니다. 인스턴스가최조로구동된때는모든버퍼들은보조리스트에서관리되며변경된버퍼들은 DBWR에의해기록된후에는다시프리버퍼로바뀌고 LRU 리스트의보조리스트에추가됩니다. - dump를수행하여확인해보도록하겠습니다. 그림 13 Buffers Dump 제목 : Oracle Memory... - 22 -
4.5. 리두로그버퍼 (Redo Log Buffer) - 오라클은오브젝트가변경되거나또는 DML 작업에의해데이터가변경되는경우변경에대한로그를리두로그버퍼에생성합니다. 해당로그들은서버프로세스에의해리두로그버퍼에기록된후백그라운드프로세스인 LGWR 프로세스에의해리두로그파일에저장하게됩니다. - Redo Log Buffer 크기는 ASMM(Automatic Shared Memory Management) 기능과달리 LOG_BUFFER 파라미터를이용해서수동으로지정해줘야합니다. 이유는 Redo Buffer, Keep Cache, Recycle Cache, 다중블록크기에의한 Cache 등의크기는 ASMM의영역에속하지않기때문입니다. - 리두로그버퍼의크기는 LOG_BUFFER Parameter로지정할수있으며 SHOW SGA 명령으로확인했을경우 Redo Buffers가리두로그버퍼의크기입니다. 오라클 10G R2 부터 Fixed SGA 영역과 Redo Buffer 영역이통합되었습니다. 이런이유로 Fixed SGA 영역에서사용하고남은일부메모리영역이 Redo Buffer에추가됩니다. SGA의메모리단위는 Granule인데, Granule에서쓰고남은메모리가 Redo Buffer 영역으로인식됩니다. 즉, Redo Buffer의크기가 LOG_BUFFER로지정한크기보다조금더커지는경우가발생합니다. 그림 14 Redo Log Buffer Size 제목 : Oracle Memory... - 23 -
4.6. 대형풀 (Large Pool) - Shared Pool, DB Buffer cache, Redo Log Buffer 는오라클에서필수 SGA(System Global Area) 영역이라고할수있으며, 반면대형풀은반드시지정해야할 SGA 영역이아닙니다. - Large Pool 사용하는주요목적은다음과같은네가지로구분할수있습니다. UGA 영역저장 주요목적 내용 UGA(User Global Area) 란세션정보및변수등을저장하고 있는세션별메모리영역을의미합니다.( 참고로 UGA 는 PGA 의부분집합입니다.) 데이터베이스생성시공유서버모드 로설정할경우 UGA 는 Shared Pool 을사용하게됩니다. RMAN(Recover Manager) 의 정보저장 RMAN 유틸리티를사용하게되면여러개의디스크 I/O 슬래 이브프로세스를기동하게되며파라미터중 DISK_IO=n, BACKUP_TAPE_IO_SLAVE=TRUE 로설정되어있다면 Large Pool 을사용하게됩니다. 병렬프로세스 (Parallel Processing) 의저장정보 대용량데이터를엑세스하기위해서병렬프로세스를이용합 니다. 즈, 여러개의프로세스를기동하여하나의 SQL 을수행 하게되는것입니다. 이때각프로세스들간에는여러메시지를주고받게되며이를병렬프로세스메시지 (PX MSG) 라고합니다. 만약 Large pool이설정되어있지않다면 Shared Pool의공간을낭비하게됩니다. I/O 슬래이브프로세스의 저장정보 DBWR Background Process 는해당프로세스아래슬래이브 프로세스 (Slave Process) 를기동하여더빠른디스크 I/O 작업 을수행할수있습니다. Lange Pool이설정하면사용할수있습니다. 표 9 Large Pool 주요사용목적 - show sga 명령을조회되는내용중 Variable Size의영역을 Shared Pool, Java Pool, Large Pool이통합하여사용합니다. - Large Pool의크기는 LARGE_POOL_SIZE 파라미터로확인가능합니다. 그림 15 Large Pool Parameter 및통계정보 제목 : Oracle Memory... - 24 -
4.7. 자바풀 (JAVA Pool) - 자바풀은자바명령을구문분석할경우사용하는메모리공간이므로자바를설치하고사용할경우지정해주어야합니다. - 역시 Large Pool과같이 SGA의필수영역은아닙니다. - 자바풀은 JAVA_POOL_SIZE 파라미터를지정이가능합니다. 그림 16 JAVA Pool Parameter 제목 : Oracle Memory... - 25 -
5. 참고자료 사이트 [ 교육 ] 서진수샘오라클취업반 [ 세미나 ] 김영조샘 [ 책 ] 초보자를위한 Oracle 10g(94P ~ 131P) 저자권순용, 김지한, 황오현 [ 책 ] 실전오라클백업과복구 (30P ~ 60P) 저자서진수 [ 구글머신 ] Program Global Area(PGA) [ 오라클클럽 ] Shared Pool [ 오라클클럽 ] DB 버퍼캐시 ( 오라클성능고도화 ) [ 오라클클럽 ] DB 버퍼캐시 ( 대용량데이터베이스 ) [ 엑셈 ] cache buffer chains [ 엑셈 ] 리두로그버퍼 제목 : Oracle Memory... - 26 -