Memory Architecture   «Prev  Next»

Lesson 2The System Global Area (SGA)
Objective Describe the Memory Structures that make up the System Global Area.

Describe Memory Structures that make up System Global Area

Sga Alternative Meaning
The System Global Area, or SGA, is the heart of any Oracle instance. All the various Oracle processes communicate with the SGA in one way or another.

Memory structures in the SGA

The previous module introduced you to some of the major structures in the SGA. This module will go a bit deeper and discuss the topics in more detail. Here is a more detailed version of a MouseOver you saw earlier.

  1. Database Buffer Cache: Holds data blocks read from disk
  2. Keep Buffer Pool: Data blocks that are kept in memory
  3. Recycle Buffer Pool: Data blocks that are recycled as soon as possible
  4. Default Buffer Pool: Data blocks managed in the default fashion
  5. Redo Log Buffer: Holds redo log entries waiting to be written to disk
  6. Fixed SGA: Contains general information about the state of the database and the instance
  7. Large Pool: An optional memory area used for backup and restore operations
  8. Shared Pool: Contains memory structures related to SQL execution
  9. Library Cache: Contains the shared SQL area and PL/SQL code
  10. Data Dictionary Cache: An area in the Shared Pool where Oracle stores frequently accessed data dictionary information so that it does not need to be continuously reread from disk.
  11. Control Structures: Library cache, Locks, cache handles, etc.
  12. Control Structures: Shared pool, character set conversion memory, etc.
  13. Shared SQL Area: SQL statements and execution plans
  14. PL/SQL code, packages, procedures, and functions
  1. Database Buffer Cache: Database Buffer Cache: Holds data blocks read from disk and
  2. Shared Pool:Contains memory structures related to SQL execution


Database Buffer Cache

The database buffer cache, also called the buffer cache, is the memory area that stores copies of data blocks read from data files. A buffer is a main memory address in which the buffer manager temporarily caches a currently or recently used data block. All users concurrently connected to a database instance share access to the buffer cache.

Purpose of the Database Buffer Cache

Oracle Database uses the buffer cache to achieve the following goals:
  1. Optimize physical I/O: The database updates data blocks in the cache and stores metadata about the changes in the redo log buffer. After a COMMIT, the database writes the redo buffers to the online redo log but does not immediately write data blocks to the data files. Instead, database writer (DBW) performs lazy writes in the background.
  2. Keep frequently accessed blocks in the buffer cache and write infrequently accessed blocks to disk
    When Database Smart Flash Cache (flash cache) is enabled, part of the buffer cache can reside in the flash cache. This buffer cache extension is stored on one or more flash disk devices, which are solid state storage devices that uses flash memory.
    The database can improve performance by caching buffers in flash memory instead of reading from magnetic disk. Use the DB_FLASH_CACHE_FILE and DB_FLASH_CACHE_SIZE initialization parameters to configure multiple flash devices. The buffer cache tracks each device and distributes buffers to the devices uniformly.

Oracle SGA Components
The next few lessons talk about each SGA memory structure in detail.

SGA Structure Terms

Before you move on, click the link below to read about SGA Structure Terms.
SGA Structure Terms