System Global Area

From Wikipedia, the free encyclopedia

In the database management systems developed by the Oracle Corporation, the System Global Area (SGA) forms the part of the system memory (RAM) shared by all the processes belonging to a single Oracle database instance. The SGA contains all information necessary for the instance operation.

Components[edit]

In general, the SGA consists of the following:

  • buffer cache: holds copies of data blocks read from datafiles[1]
  • dictionary cache: holds information about data dictionary tables, such as information about account, datafile, segment, extent, table and privileges
  • redo log buffer: contains information about database transactions, both committed and uncommitted, in preparation for writing to online redo log files
  • shared pool: holds the dictionary or row cache, the library cache, cursor definitions and shared SQL.
  • Java pool: holds information for parsing Java statements.
  • large pool: including the User Global Area (UGA))
  • stream pool:this is remote connectivity for the database.

Configuration[edit]

From Oracle Database version 10g, Automatic Memory Management (AMM) allows simplified and dynamic configuration of the SGA.[2]

Granules[edit]

In the Oracle DBMS, the Oracle server allocates the system global area (SGA) in granule units at the time of instance startup. During the startup, each component acquires as many granules as it requires. The SGA can be said to consist of linked granules. The granule size depends on the database version and sometimes on the operating system. In Oracle 9i and earlier, it is 4 MB if the SGA size is less than 128 MB, and 16 MB otherwise. For later releases, it is typically 4 MB if the SGA size is less than 1 GB, and 16 MB otherwise. [3] There must be at least 3 granules in the SGA: one for the Database Buffer Cache, one for the Shared Pool Area and one for the Redo Log Buffer. It is possible to retrieve information about the current granule size at any time by querying the dynamic view V$SGAINFO.[4]

See also[edit]

Further reading[edit]

References[edit]

  1. ^ "Memory Architecture" in Oracle Database Concepts 11g Release 1 (11.1)
  2. ^ Burleson, Donald K., ed. (2003). Oracle Database 10g New Features: Oracle 10g Reference for Advanced Tuning & Administration. Oracle In-Focus. Rampant TechPress. p. 22. ISBN 9780974071602. Retrieved 2012-11-22. Oracle Database 10g [...] has Automatic Memory Management (AMM) in the form of the [...] parameter [...] sga_target, which [...] automates the allocation of RAM between the data buffers, shared pool, and log buffers.
  3. ^ "Granule". The Oracle FAQ. Retrieved 2009-04-11.
  4. ^ "Determining the granule size on Oracle 10g". SUPINFO Oracle Laboratory. Retrieved 2009-04-11.


.