SEARCH HERE

Oracle Memory Structure


The basic memory structures associated with an Oracle instance include the following:

System Global Area (SGA): Shared by all server and background processes

Program Global Area (PGA): Private to each server and background process. There is one PGA for each process.

The SGA is a memory area that contains data and control information for the instance.
The SGA includes the following data structures:

Database buffer cache: Caches blocks of data retrieved from the database

Redo log buffer:
Caches redo information (used for instance recovery) until it can be written to the physical redo log files stored on the disk

Shared pool:
Caches various constructs that can be shared among users

Large pool:
Is an optional area that provides large memory allocations for certain large processes, such as Oracle backup and recovery operations, and I/O server processes

Java pool:
Is used for all session-specific Java code and data within the Java Virtual Machine (JVM)

Streams pool:
Is used by Oracle Streams
When you start the instance by using Enterprise Manager or SQL*Plus, the amount of memory allocated for the SGA is displayed.

A Program Global Area (PGA) is a memory region that contains data and control information for each server process. An Oracle server process services a client’s requests. Each server process has its own private PGA that is created when the server process is started. Access to the PGA is exclusive to that server process, and the PGA is read and written only by the Oracle code acting on its behalf.
With the dynamic SGA infrastructure, the size of the database buffer cache, the shared pool, the large pool, the Java pool, and the Streams pool changes without shutting down the instance.
The Oracle database uses initialization parameters to create and configure memory structures. For example, the SGA_TARGET parameter specifies the total amount of space available to the SGA. If you set SGA_TARGET to 0, Automatic Shared Memory Management is disabled.