La SGA
- SGA signifie : System Global Area
- C'est une zone de mémoire partagée par les différents processus.
- Sa taille initiale est définie par les paramètres du fichier de paramètres.
- Elle est redimensionnable à chaud.
- Accélère les traitements en gardant en mémoire des informations réutilisables par plusieurs usagers,
plus précisément : données, plans de travail, les instructions
- Permet de ne pas écrire constamment sur le disque et optimise les I/O en regroupant les écritures
qui proviennent souvent des mêmes zones de données.
La SGA est subdivisée en plusieurs sections:
Le cache : Database Buffer Cache (Cache de tampon)
o Contient les blocs de données les plus récemment utilisés (table, index)
o Contient 2 types de bloc :
Lorsqu’un bloc est modifié (ex : UPDATE), il garde une version avant
modification. C’est le segment d'annulation
Valeurs actuelles des colonnes d’une table, d’un index
Le cache : Redo log-Buffer
o Anciennes et nouvelles valeurs des lignes d’une modification dans le buffer
Ensemble de vecteurs, décrivant chaque modification atomique d’un bloc (table,
index ou segment d’annulation). Séquentiel
Le pool : Shared-Pool (pool partagé) :
o Contient deux sous-caches
Le cache: Library-cache
Le cache: Dictionary-cache
o Le shared-pool est dimensionné dans le fichier de paramètres par le paramètre:
SHARED_POOL_SIZE (10 à 100 Mo)
Le Java-pool
o Mémoire utilisée par la machine virtuelle de Java intégrée
Il est possible d’appeler du code Java directement à partir d’une fonction
PL/SQL, par exemple.
Le Large-pool
o Pour les transactions sur plusieurs bases de données
o Opérations de sauvegarde et restauration d’Oracle
o Zone optionnelle
Le Streams-pool
o Gestion du partage de données et d’événements dans un système distribué.
Ex : plusieurs bases de données. Il change les données sur 1 BD source et la
propage sur les autres
Le result Cache
o Cache pour le résultat des requêtes et fonctions PL/SQL