Oracle Database Memory Structures
Oracle Database Memory Structures
Oracle Database creates and uses memory structures for various purposes. For example,
memory stores program code being run, data that is shared among users, and private data
areas for each connected user.
System Global Area (SGA): Group of shared memory structures, known as SGA
components, that contain data and control information for one Oracle Database
instance. The SGA is shared by all server and background processes. Examples of
data stored in the SGA include cached data blocks and shared SQL areas.
Program Global Areas (PGA): Memory regions that contain data and control
information for a server or background process. A PGA is nonshared memory created
by Oracle Database when a server or background process is started. Access to the
PGA is exclusive to the server process. Each server process and background process
has its own PGA.
The SGA is the memory area that contains data and control information for the instance.
The SGA includes the following data structures:
Shared pool: Caches various constructs that can be shared among users
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
Large pool: 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: Used for all session-specific Java code and data in the Java Virtual
Machine (JVM)
Streams pool: Used by Oracle Streams to store information required by capture and
apply
Fixed SGA: An internal housekeeping area containing general information about the
state of the database and the instance, and information communicated between
processes When you start the instance, 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 allocated 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. The PGA is divided into two major
areas: stack space and the user global area (UGA).
With the dynamic SGA infrastructure, the sizes of the database buffer cache, the shared
pool, the large pool, the Java pool, and the Streams pool can change without shutting down
the instance.