Table des matières:
- Le cache de la bibliothèque dans Oracle 12c
- Le cache de dictionnaire dans Oracle 12c
- Le cache des résultats du serveur dans Oracle 12c
- Le pool réservé dans Oracle 12c
- Algorithme le plus récemment utilisé dans Oracle 12c
Vidéo: Tutoriel Oracle DBA1 (45) : Oracle Streams et Streams Pool. 2024
Certains objets et périphériques dans Oracle 12c sont fréquemment utilisés. Par conséquent, il est logique de les avoir prêts chaque fois que vous voulez faire une opération. De plus, les données du pool partagé ne sont jamais écrites sur le disque.
Le pool partagé lui-même est constitué de quatre zones principales:
-
Cache de la bibliothèque
-
Cache du dictionnaire
-
Cache du résultat du serveur
-
Pool réservé
Un cache est une zone temporaire en mémoire créée pour une extraction rapide d'informations qui pourrait autrement prendre plus de temps à récupérer. Par exemple, les caches mentionnés dans la liste précédente contiennent des informations précalculées. Au lieu d'un utilisateur ayant à calculer des valeurs à chaque fois, l'utilisateur peut accéder aux informations dans un cache.
Le cache de la bibliothèque dans Oracle 12c
Le cache de la bibliothèque est exactement comme ce qu'on appelle: une bibliothèque. Plus précisément, il s'agit d'une bibliothèque d'instructions SQL prêtes à l'emploi.
Chaque fois que vous exécutez une instruction SQL, il se passe beaucoup de choses en arrière-plan. Cette activité en arrière-plan est appelée analyse syntaxique . L'analyse peut être assez coûteuse en termes de puissance de traitement.
Pendant l'analyse syntaxique, certaines de ces choses arrivent:
-
La syntaxe de l'instruction est vérifiée pour s'assurer que vous avez tout tapé correctement.
-
Les objets auxquels vous faites référence sont vérifiés. Par exemple, si vous essayez d'accéder à une table appelée EMPLOYEE, Oracle s'assure qu'il existe dans la base de données.
-
Oracle s'assure que vous avez la permission de faire ce que vous essayez de faire.
-
Le code est converti en un format prêt pour la base de données. Le format est appelé octet-code ou p-code.
-
Oracle détermine le chemin ou le plan optimal. C'est de loin la partie la plus chère.
Chaque fois que vous exécutez une instruction, les informations sont stockées dans le cache de la bibliothèque. De cette façon, la prochaine fois que vous exécutez l'instruction, peu de choses doivent se produire (comme la vérification des autorisations).
Le cache de dictionnaire dans Oracle 12c
Le cache de dictionnaire est également fréquemment utilisé pour l'analyse lorsque vous exécutez SQL. Vous pouvez y voir une collection d'informations sur vous et les objets de la base de données. Il peut vérifier les informations de type en arrière-plan.
Le cache de dictionnaire est également régi par les règles de l'algorithme Least Recently Used (LRU): Si la taille n'est pas la bonne, les informations peuvent être expulsées. Ne pas avoir suffisamment de place pour le cache du dictionnaire peut avoir un impact sur l'utilisation du disque.
Étant donné que les définitions des objets et des informations basées sur les autorisations sont stockées dans des fichiers de base de données, Oracle doit lire les disques pour recharger ces informations dans le cache du dictionnaire. Cela prend plus de temps que de l'obtenir à partir du cache mémoire.Imaginez un système avec des milliers d'utilisateurs exécutant constamment SQL … un cache de dictionnaire de taille incorrecte peut vraiment entraver les performances.
Comme le cache de la bibliothèque, vous ne pouvez pas contrôler directement la taille du cache du dictionnaire. Lorsque le pool partagé global change de taille, le cache du dictionnaire change également.
Le cache des résultats du serveur dans Oracle 12c
Le cache des résultats du serveur comporte deux parties:
-
Cache des résultats SQL: Ce cache permet à Oracle de voir que les données demandées par une instruction SQL récemment exécutée être stocké en mémoire. Cette situation permet à Oracle d'ignorer la partie exécution de l'exécution, er, faute d'un meilleur terme, et d'aller directement au jeu de résultats s'il existe.
Le cache de résultats SQL fonctionne le mieux sur des données relativement statiques (comme la description d'un élément sur un site de commerce électronique).
Devriez-vous vous inquiéter du fait que le cache des résultats renvoie des données incorrectes? Pas du tout. Oracle invalide automatiquement les données stockées dans le cache des résultats si l'un des composants sous-jacents est modifié.
-
Cache des résultats de la fonction PL / SQL: Le cache des résultats de la fonction PL / SQL stocke les résultats d'un calcul. Par exemple, disons que vous avez une fonction qui calcule la valeur du dollar sur la base du taux de change de l'euro. Vous pourriez ne pas vouloir stocker cette valeur réelle car elle change constamment.
Au lieu de cela, vous avez une fonction qui appelle un taux journalier ou horaire pour déterminer la valeur du dollar. Dans une application financière, cet appel pourrait se produire des milliers de fois par heure. Par conséquent, au lieu de la fonction d'exécution, il va directement dans le cache de résultat PL / SQL pour obtenir les données entre les mises à jour de taux. Si le taux change, Oracle ré-exécute la fonction et met à jour le cache des résultats.
Le pool réservé dans Oracle 12c
Lorsque Oracle doit allouer un gros bloc (supérieur à 5 Ko) de mémoire contiguë dans le pool partagé, il alloue la mémoire dans le pool réservé. La réservation du pool réservé pour gérer de larges allocations de mémoire améliore les performances et réduit la frange de mémoire.
Algorithme le plus récemment utilisé dans Oracle 12c
Si le cache de la bibliothèque manque d'espace, les objets sont éjectés. Les instructions les plus utilisées restent le plus longtemps dans le cache de la bibliothèque. Plus ils sont souvent utilisés, moins ils ont de chances d'être expulsés si le cache de la bibliothèque manque d'espace.
Le processus d'éviction du cache de bibliothèque est basé sur ce qu'on appelle l'algorithme Least Recently Used (LRU). Si votre bureau est encombré, qu'est-ce que vous rangez en premier? Les choses que vous utilisez le moins.
Vous ne pouvez pas changer vous-même la taille du cache de la bibliothèque. La taille globale du pool partagé détermine cela. Si vous pensez que trop d'instructions sont expulsées, vous pouvez augmenter la taille globale du pool partagé si vous l'ajustez vous-même. Si vous laissez Oracle faire le réglage, il récupère la mémoire libre d'ailleurs.