La SGA
(System Global Area) est une zone mémoire partagée par tous les utilisateurs de la base, et utilisée comme cache par le code Oracle pour stocker des infos partagées.
Elle est allouée au démarrage de l’instance et libérée à l’arrêt de la base.
Sa taille et ses modalités d’utilisation, sont pilotées par des paramètres d’initialisation de la base.
Elle contient :
- des données (lues ou écrites dans le fichier de données)
- des données modifiées à journaliser
- des instructions SQL
- des meta-données (contenu du dictionnaire)
- des programmes stockés (PLSQL ou java)
La SGA est allouée (sa taille dépend des paramètres d’inititialisation) au démarrage de l’instance. On voit ci-après les infos affichées lors du démarrage :
SQL> startup
ORACLE instance started.
Total System Global Area 790941696 bytes
Fixed Size 1302820 bytes
Variable Size 398462684 bytes
Database Buffers 385875968 bytes
Redo Buffers 5300224 bytes
Database mounted.
Database opened.
Les fichiers de données, mais aussi les redo logs ont par exemple une zone d’antémémoire spécifique en SGA : le (DATA) BUFFER CACHE et le LOG BUFFER CACHE.
Des informations résumées sur la SGA courante sont disponibles dans la vue V$SGA.
Les composant de la SGA
Des informations sur la taille et l’utilisation des différents composants de la SGA sont disponibles dans la vue V$SGAINFO du dictionnaire.


Modes de gestion de taille de la SGA
Il existe deux modes de gestion de taille de la SGA, la gestion manuelle et la gestion automatique.
* dans le mode manuel,
c’est le DBA qui analyse le fonctionnement de la base et détermine quelle valeur affecter à chacun des paramètres de taille des composants.
* dans le mode automatique,
c’est Oracle qui calcule et ajuste automatiquement, en fonction de règles et de résultats statistiques, les tailles des différrents composant de la SGA et conséquemment sa taille globale.
Pour passer en mode automatique le paramètre SGA_TARGET doit être positionné à une valeur différente de 0, et les autres paramètres ajustable automatiquement mis à 0 ou à une valeur minimale.
Il est possible la taille cible de la SGA, grace à la vue V$SGA_TARGET_SIZE
ou en calculant la taille réellement utilisé à l’instant T :
SQL SELECT SUM(value) FROM v$SGA
- SELECT current_size FROM V$SGA_DYNAMIC_FREE_MEMORY
Paramétrage des principaux composants de la SGA
Le tableau suivant montre les différentes zones de la SGA et les paramètres d’initialisation associés.
COMPOSANT SGA PARAMETRE AJUSTABLE BUT
Large pool LARGE_POOL_SIZE O
Shared pool SHARED_POOL_SIZE O
Java pool JAVA_POOL_SIZE O
Cache de données DB_CACHE-SIZE (1) O
Cache de redolog DB_LOG_BUFFER N
Cache personalisé DB_(n)K_CACHE_SIZE N