Oracle Database creates and uses memory structures for various purposes.
For example, memory stores program code being run, data shared among users, and
private data areas for each connected user.
Two basic memory structures are associated with an instance:
•
The System Global Area (SGA) is a 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.
•
The Program Global Areas (PGAs) are 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:
•
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 to store information required by capture and apply
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 size of
the SGA components. If you set SGA_TARGET to 0, Automatic Shared Memory
Management is disabled.