Datalbi  
Créé le 05/11/2015 par Laurent Bourcier

Architecture Mémoire d'Oracle 12c

Introduction

Une instance Oracle est constituée de :

Une base de données est constituée de :

Le schema d'architecture interne d'Oracle est représenté ci-dessous.

La structure Mémoire

Il y a 3 manières de paramétrer l'utilisation de la mémoire :

Les différentes zones mémoire sont :
Zone Sous-Zone Description
SGA Shared Pool Cette zone contient :
  • Un Cache du dictionnaire de données (Data Dictionary Cache)
  • Un Cache des requetes SQL et leur plan d'execution (Library Cache)
  • Une zone de gestion des locks (Library Cache)
  • Une zone Private SQL Area qui contient des pointeurs vers la shared SQL Area (Library Cache)
  • Un Cache pour le Server Result Cache
  • Une zone reserved pool pour les blocs de code de grande taille (supérieur à 5Ko). Par défaut 5% de la SGA.
Parametres : SHARED_POOL_SIZE, SHARED_POOL_RESERVED_SIZE
Database Buffer Cache Cette zone contient une copie des blocs lus depuis les datafiles.
Parametres : DB_CACHE_SIZE, DB_nK_CACHE_SIZE (2K, 4K, 8K, 16K, 32K)
Redo Log Buffer Cache d'écriture dans les redologs
Parametre : LOG_BUFFER
Large Pool Cette zone contient :
  • La UGA (User Global Area, gére les informations de session) dans le cas des shared servers (la PGA n'est pas appropriée dans ce cas)
  • Un buffer de messages pour les parallel query
  • Un buffer I/O pour RMAN
Parametre : LARGE_POOL_SIZE
Java Pool Zone pour les code java spécifique aux sessions
Parametre : JAVA_POOL_SIZE
Streams Pool Zone pour les messages d'Oracle Stream (messages capture et messages apply)
Parametre : STREAMS_POOL_SIZE
Fixed SGA Zone pour les informations internes de la base et de l'instance.
Non paramétrable.
Shared I/O Pool (Nouveauté 11g) Zone tampon pour les SecureFile LOBs.
Non paramétrage. Peut varier de 0 à 4% du database buffer cache.
In-Memory Area (Nouveauté 12.1.0.2) Zone pour In-Memory Column Store : stockage de colonnes en mémoire.
Parametre : INMEMORY_SIZE
PGA SQL Work Areas Mémoire pour les opérations de tri (Sort Area), de hash (Hash Area), de bitmap merge (Bitmap Merge Area).
Cette zone est taillée automatiquement si PGA_AGGREGATE_TARGET est positionné.
Parametres : SORT_AREA_SIZE, HASH_AREA_SIZE, BITMAP_MERGE_AREA_SIZE
Private SQL Area Gère les cursors et le bind variables
Session Memory Données internes à une session

Liste des Parametres d'Initialisation

Vues du dictionnaire de données

Les vues donnant des informations sur la mémoire sont :

-- Cette requete donne la taille des zones mémoire. 
-- Les 5 dernières lignes sont des informations supplémentaires.

SQL> select * from V$SGAINFO;

NAME                                  BYTES RES     CON_ID
-------------------------------- ---------- --- ----------
Fixed SGA Size                      2931136 No           0
Redo Buffers                        5455872 No           0
Buffer Cache Size                 423624704 Yes          0
In-Memory Area Size                       0 No           0
Shared Pool Size                  171966464 Yes          0
Large Pool Size                     8388608 Yes          0
Java Pool Size                      4194304 Yes          0
Streams Pool Size                         0 Yes          0
Shared IO Pool Size                20971520 Yes          0
Data Transfer Cache Size                  0 Yes          0
Granule Size                        4194304 No           0
Maximum SGA Size                  943718400 No           0
Startup overhead in Shared Pool   131536048 No           0
Free SGA Memory Available         327155712              0


-- Cette requete donne des statistiques sur le PGA
-- Seule la ligne "total PGA allocated" donne la taille actuellement allouée.

SQL> select * from V$PGASTAT;

NAME                                                    VALUE UNIT             CON_ID
-------------------------------------------------- ---------- ------------ ----------
aggregate PGA target parameter                      327155712 bytes                 0
aggregate PGA auto target                           185960448 bytes                 0
global memory bound                                  65430528 bytes                 0
total PGA inuse                                     120532992 bytes                 0
total PGA allocated                                 162153472 bytes                 0
maximum PGA allocated                               237112320 bytes                 0
total freeable PGA memory                            15925248 bytes                 0
process count                                              48                       0
max processes count                                        69                       0
PGA memory freed back to OS                         369164288 bytes                 0
total PGA used for auto workareas                           0 bytes                 0
maximum PGA used for auto workareas                   1872896 bytes                 0
total PGA used for manual workareas                         0 bytes                 0
maximum PGA used for manual workareas                       0 bytes                 0
over allocation count                                       0                       0
bytes processed                                     330761216 bytes                 0
extra bytes read/written                                    0 bytes                 0
cache hit percentage                                      100 percent               0
recompute count (total)                                  1389                       0