본문 바로가기

shared pool5

[ORACLE] Shared Pool 역할 및 구성 Shared Pool Shared Pool의 가장 큰 역할을 Parsing작업을 하기위해 사용된다는 것 입니다. Parsing된 정보를 저장하는 Library Cache와 이러한 Parsing 작업을 진행하는데 필요한 Data Dictionary의 정보를 메모리상에 올려 저장하는 Data Dictionary Cache가 Shared Pool의 핵심이라고 볼 수 있습니다. Shared Pool의 목적 Shared Pool과 Parsing에 대한 내용을 언급했습니다. Shared Pool의 목적은 빠른 Parsing을 위해 Hard Parsing을 줄이고 Soft Parsing의 비율을 높여 Oracle Database의 성능을 높히는 것 입니다. Soft Parsing : Library Cache에 저장되.. 2020. 7. 5.
[ORACLE] Reserved Pool 역할 및 확인 Reserved Pool Oracle Reserved Pool은 Shared Pool에 크기가 큰 오브젝트를 저장해야하는 경우 사용되는 메모리입니다. Parsing된 SQL이나 PL/SQL 문장 및 실행계획들은 Library Cache에 저장을 합니다. 그런데 이때 내부적으로 Chunk라는 1KB or 4KB 크기의 조각으로 오브젝트를 저장하는데 만약 이보다 큰 크기의 Chunk를 사용해야하는 경우에 Reserved Pool을 사용합니다. Reserved Pool 용량 확인 SHOW PARAMETER SHARED_POOL_RESERVED_SIZE Reserved Pool 정리 - Parsed된 크기가 큰 SQL or PL/SQL 오브젝트를 저장하는 공간 2020. 7. 5.
[ORACLE] Result Cache 역할 및 실습 Result Cache Result Cache는 Oracle 11g에서 처음 소개되었습니다. Result Cache는 사용자들의 대기 상황을 줄여줄 수 있는 대안으로 사용이 가능합니다. 어떤 사용자가 SQL 문장을 질의 했을때 Server Process가 가장 먼저하는 일은 Parse 작업을 통해 만들어진 실행계획으로 Database Buffer Cache에 필요한 데이터가 존재하는지 확인합니다. 한명의 사용자가 사용했을 때는 상관없지만, 다수의 사용자가 동시에 Database Buffer Cache를 접근하려고 할때 읽기 일관성을 유지하기 위해 Latch라는 메모리에 대한 Lock을 확보하여 Latch를 소유하고 있는 사용자만 해당 Block에 대한 작업 수행이 가능하여 다른 사용자가 대기하는 현상이 .. 2020. 7. 5.
[ORACLE] Data Dictionary Cache 역할 Data Dictionary Cache Data Dictionary Cache는 Data Dictionary Object 정보를 저장하는 공간이다. 사용자가 SQL Query를 질의 했을 때 Parsing 작업을 합니다. Library Cache에 해당 Query가 존재하지 않아 HardParsing 작업을 할 때 Semantic Check 작업을 통해 Query에서 사용한 테이블이나 칼럼 혹은 사용자의 권한을 확인하는 작업을 진행합니다. 이때, 테이블에 대한 정보나 사용자의 권한은 어디서 참조를 할까요? 이러한 정보들은 물리적으로는 SYSTEM Tablespace에 저장되어있습니다. SQL 문장에서 DataDictionary의 Object가 참조되면 Database Buffer Cache를 지나 Dat.. 2020. 7. 5.
[ORACLE] Library cache 역할 및 확인 Oracle Library Cache Library Cache는 Oracle Instance SGA Shared Pool 영역에 존재한다. 존재의 궁극적인 목표는 Oracle의 성능을 높여주기 위함이다. 사용자가 SQL 문장을 질의 했을때 Oracle 내부에서는 Parse - Execute - Fetch 단계를 진행하여 결과를 반환해주는데 Library Cache에 저장되어 있는 정보에 따라 Parse 단계를 거치지 않고 메모리에 저장된 정보를 그대로 사용할 수 있다. Library Cache 내부에는 공유 SQL 영역(Shared SQL Area)과 공유 PL/SQL 영역(Shared PL/SQL Area)이 존재하는데, 파스 과정이 완료되면 사용자가 실행한 SQL 문장과 실행계획이 저장되는 공간이다... 2020. 7. 5.