Oracle Database Memory Structures

Share this article :

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. Two basic memory structures are associated with an instance:

•  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:

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: 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

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 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.

The Oracle database uses initialization parameters to create and manage memory structures. The simplest way to manage memory is to allow the database to automatically manage and tune it for you. To do so (on most platforms), you only have to set a target memory size initialization parameter (MEMORY_TARGET) and a maximum memory size initialization parameter (MEMORY_MAX_TARGET).

Related posts

V$AQ: Oracle Queues Statistic
Change User Password in Oracle
Converting between SPFILE or PFILE
OPatch: Prerequisite check "CheckActiveFilesAndExecutables"
© 2018 ITsiti. All Rights Reserved
Powered by KEEM