PGA
| Fiche express | |
|---|---|
| Type | Zone mémoire privée par processus serveur |
| Contenu | Curseurs SQL, tri, hachage, variables de session |
| Paramètre clé | PGA_AGGREGATE_TARGET |
| Voir aussi | SGA · Instance · Oracle |
La PGA (Program Global Area) est la zone mémoire privée d'un processus serveur Oracle — contrairement à la SGA, partagée par toute l'instance. Chaque processus serveur dispose de sa propre PGA, contenant :
- la zone de travail SQL (tris, jointures par hachage...) ;
- les informations sur la session ;
- les informations sur le traitement des requêtes de la session en cours ;
- les variables de session.
L'ensemble des PGA de tous les processus de l'instance est désigné sous le terme Aggregated PGA (ou Instance PGA).
Paramètres historiques (gestion manuelle)
Avant la gestion automatique, la taille des différentes zones de travail SQL se réglait individuellement :
SORT_AREA_SIZE -- tris HASH_AREA_SIZE -- jointures par hachage BITMAP_MERGE_AREA_SIZE -- fusion d'index bitmap CREATE_BITMAP_AREA_SIZE -- création d'index bitmap
Gestion automatique (depuis Oracle 9i/11g)
Depuis Oracle 9i, le paramètre suivant permet de gérer automatiquement la taille de la PGA agrégée — les paramètres individuels ci-dessus ne sont alors plus utilisés directement :
PGA_AGGREGATE_TARGET
Pour activer cette gestion automatique, STATISTICS_LEVEL doit être positionné à
TYPICAL (valeur par défaut) ou ALL :
STATISTICS_LEVEL = TYPICAL | ALL
Depuis Oracle 11.2.0.2, PGA_AGGREGATE_LIMIT vient compléter
PGA_AGGREGATE_TARGET : il s'agit d'une limite dure (hard limit), alors que
PGA_AGGREGATE_TARGET reste un objectif indicatif que l'instance peut dépasser en
cas de forte charge. (à vérifier) selon la version exacte utilisée.
Si MEMORY_TARGET (gestion automatique unifiée mémoire, Oracle 11g+) est utilisé,
SGA et PGA sont dimensionnées conjointement par Oracle à partir d'une seule enveloppe
mémoire globale.