Skip to main content

Oracle Memory Structure - Oracle Architecture

SGA - System Global Area

SGA is a  group of shared memory area which is dedicated to oracle instance.

Shared Pool

Shared pool is dividing into two major areas which are :

  • Library Cache : Area which stores the SQL information such as select statements, cursors and execution plans.
  • Data Dictionary Cache : Which contains cache, user information and privileges, segments and extent information as well.
Buffer Cache


Buffer cache holds blocks of data from disk that have been recently read to satisfy a select statement or that contains modified data-blocks. 

Redo Log Buffer

Redo Log buffer holds the most recent changes to the data blocks in the data-files.  

Large Pool

This is an operational area of the SGA it is used for transactions that interact with more than one database.

Java Pool

Java Pool is used by the Oracle JVM (Java Virtual Machine) for all Java code & data within user session.

Stream Pool

Stream Pool is sized by using the initialization parameter STREAMS_POOL_SIZE. the stream pool holds data & control structures to support Oracle stream feature of Oracle Enterprise Edition. 

PGA - Program Global Area


PGA is an area of memory allocated and private for one process.



Comments

Popular posts from this blog

Insert script with multiple cursors and condition check

DECLARE CURSOR C1 IS   SELECT ID FROM TABLE_NAME_1 WHERE COLUMN IN ('');   CURSOR C2     IS       SELECT ID FROM TABLE_NAME_2 WHERE COLUMN IN ('');              CURSOR C3 (CP_TABLE_01_ID NUMBER,CP_TABLE_02_ID NUMBER)         IS           SELECT COUNT(*) AS COUNT_UP           FROM TABLE_NAME_3           WHERE COLUMN_CONDITION_01=CP_TABLE_02_ID           AND COLUMN_CONDITION_02=CP_TABLE_01_ID; COUNT_UP NUMBER; BEGIN FOR R1 IN C1 LOOP     FOR R2 IN C2     LOOP          OPEN C3(R1.ID,R2.ID);        FETCH C3 INTO COUNT_UP;        CLOSE C3;               IF (COUNT_UP=0) THEN           INSERT           INTO TABL...

REF Cursor

REF CURSOR WILL BE DYNAMICALLY OPENS OR OPEN BASED ON A LOGIC. DECLARE TYPE C1 IS REF CURSOR ; CURSOR C IS SELECT * FROM DUAL; REF_CURSOR RC; BEGIN IF (TO_CHAR(SYSDATE, 'DD' ) = 30 ) THEN OPEN REF_CURSOR FOR 'SELECT * FROM TABLE1' ; ELSIF ( TO_CHAR(SYSDATE, 'DD' ) = 29 ) THEN OPEN REF_CURSOR FOR SELECT * FROM TABLE2; ELSE OPEN REF_CURSOR FOR SELECT * FROM DUAL; END IF ; OPEN C; END ;