|
|
|
|
|
|
|
|
|
|
|
|
|
Oracle - La gestion de la mémoire
L'utilisation de la mémoire par Oracle.
Oracle fait un usage poussé de la mémoire physique (RAM, Random Access Memory) du serveur afin de fournir les meilleures performances possibles.
Ainsi Oracle utilise la mémoire physique du serveur pour :
- accélérer l'accès aux données de la base régulièrement accédées
- mettre les processus en mémoire
- optimiser la communication entre les processus et la base de données
Ainsi la taille de la mémoire vive du serveur est primordiale pour la performance de la base de données. En effet,
lorsqu'il n'y a plus de mémoire physique disponible, le système d'exploitation met à disposition de l'application
une mémoire dite "virtuelle" composée de fichiers d'échange (fichiers swap) sur le disque du serveur.
Or l'accès au disque dur est extrêmement plus long que l'accès à la mémoire physique, ce qui provoque
des ralentissements notables dans le fonctionnement de la base de données Oracle.
Dans une base de données Oracle on distingue généralement deux zones mémoire :
- La zone SGA (System Global Area) assurant le partage des données des différents utilisateurs, c'est-à-dire qu'il s'agit de la zone contenant les structures de données accessibles par tous les processus
- La zone PGA (Program Global Area) permettant le fonctionnement des divers processus (afin de stocker toutes les données ne
nécessitant pas d'être partagées).
La SGA (appelée aussi mémoire réservée) est composée de plusieurs constituants :
- La Shared Pool (ou zone partagée) contenant des informations pouvant être réutilisées par les différents utilisateurs,
c'est-à-dire les requêtes SQL et programmes PL/SQL pouvant être partagés, le dictionnaire de données, les curseurs, ... D'une manière
générale, cette zone sert à mémoriser, analyser et traiter les requêtes SQL provenant des divers utilisateurs.
- Le Db block buffer (Database Buffer Cache ou cache des blocs de données) est un espace mémoire contenant toutes les données transitant de ou vers la base de données : blocs de données, blocs d'index et blocs contenant les ROLLBACK SEGMENTS.
Il s'agit donc d'un cache permettant d'accélérer l'accès à certaines données de la base.
- Le Redo Log buffer (ou cache Redo-log) contient les blocs de données (appelés Redo Entries) à modifier et les modifications à effectuer sur ces données, avant que l'ensemble de ces mises à jour de la base ne soient
archivées dans les fichiers Redo-log
La SGA et les processus d'arrière plan constituent ce que l'on appelle une instance; A chaque démarrage d'une instance, l'espace mémoire nécessaire à son bon fonctionnement lui est alloué, et est
restitué lors de sa fermeture.
L'ensemble des tailles des caches peut être modifié (augmentée ou diminuée) grâce aux paramètres du fichier
d'initialisation (initSID.ora).
Trucs & astuces pertinents trouvés dans la base de connaissancesDiscussions pertinentes trouvées dans le forum
|
|