Etude de la structure physique dynamique
La zone mémoire
Oracle découpe la zone mémoire qui lui est allouée
en trois parties :
- la PGA qui gère les processus utilisateurs,
- la SGA qui est une zone commune de mémoire partagée,
contenant des informations spécifiques à une instance,
- la zone de tri, pour le stockage temporaire des données.
Description de la PGA
Lors d'une interrogation, Oracle alloue une partie de
mémoire centrale pour gérer la requête. Cette zone
est prise dans la PGA (program global area). Elle permet le
stockage du processus client et de son contexte, en terme Oracle.
L'ordre SQL est sauvegardé dans cette zone avant d'être
envoyé au SGBD, une fois la réponse obtenue, elle sera
envoyée à l'utilisateur (local ou distant) et cette zone
sera alors libérée.
Cette zone n'est pas dynamique et dépend de certains
paramètres d'initialisation de l'instance. Plus les
interrogations simultanées peuvent être nombreuses,
plus cette zone doit être conséquente.
Description de la SGA
Oracle utilise une zone interne de la mémoire
centrale de l'ordinateur pour gérer les données
et les ordres. Cette zone s'appelle la SGA (system global area).
Elle se décompose en quatre parties :
- les buffers cache de la base de données,
Oracle y mémorise les plus récents blocs de
données utilisés. Les données présentes
dans ces buffers ne sont peut être pas encore mises à
jour sur le disque. Ces buffers servent aussi à mémoriser
une zone spécifique appelée le Rollback segment,
- la zone de partage des ordres SQL (texte des ordres),
Oracle y mémorise le plan d'exécution des ordres SQL.
Il y effectue une analyse syntaxique et sémantique des ordres.
Elle sert de zone tampon des ordres qui vont être
exécutés par le SGBD,
- les buffers Redo Log qui conservent les traces
des transactions. Ils sont en relation avec les fichiers de redo log.
- les zones de rollback qui conservent les transactions des
utilisateurs tant que l'ordre passé n'est ni validé
(action de «commit»), ni invalidé (action de «rollback»).
Cette zone globale est allouée lors du démarrage de
l'instance et libérée lors de l'arrêt de l'instance.
Le dimensionnement de cette zone peut être important pour les
performances de la base. Augmenter la taille de certaines zones de la
SGA permet de diminuer les entrées/sorties disque, par exemple.
Description de la zone de tri
Cette région est utilisée lors du traitement des
données présentes dans la base. La zone mobilisée
s'agrandit en fonction des besoins des utilisateurs mais est limitée
par le paramètre SORT_AREA_SIZE (se
référer au chapitre traitant de l'Optimisation).
Lors d'un tri d'une table, le SGBD va tenter de mettre toutes les
informations en mémoire, pour que le processus prenne un minimum
de temps. Le SGBD va ainsi stocker un maximum de données dans
cette zone. Si toutefois, toutes les informations ne peuvent tenir dans
cette zone, il utilisera une partie des data files et
travaillera donc sur le disque dans un espace dit temporaire («temporary
segment»).
Surveillance de l'occupation de l'espace mémoire
Lors de l'activation d'une base de données, Oracle indique
la taille des diverses zones que nous venons de décrire.
L'administrateur va voir apparaître ces paramètres
dès le démarrage de la base de données :
Démarrage d'une base de données