Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Utilisation du cache de forfait partagé
Vue d’ensemble
Aurora PostgreSQL utilise un modèle de processus par utilisateur dans lequel chaque connexion client crée un processus principal dédié. Chaque processus principal gère son propre cache de plan local pour les instructions préparées. Comme ces caches ne peuvent pas être partagés entre les processus, les applications qui utilisent de nombreuses instructions préparées peuvent créer des caches dupliqués entre différents processus principaux, ce qui entraîne une utilisation accrue de la mémoire.
Les versions 17.6 et ultérieures d'Aurora PostgreSQL et 16.10 et versions ultérieures introduisent la fonctionnalité de cache de forfait partagé. Lorsque vous activez cette fonctionnalité, les processus principaux peuvent partager des plans génériques, ce qui réduit l'utilisation de la mémoire et améliore les performances en éliminant la génération de plans dupliqués.
Note
Babelfish pour Aurora PostgreSQL prend en charge le cache des forfaits partagés à partir des versions 4.10 et 5.6.
Le cache du plan partagé utilise les composants suivants comme clé de cache :
Chaîne de requête (y compris les commentaires)
Planner-related Paramètres GUC (y compris
search_path)ID de l’utilisateur
ID de base de données
Les redémarrages de l'instance réinitialisent le cache partagé.
Parameters
Le tableau suivant décrit les paramètres qui contrôlent la fonctionnalité de cache du plan partagé :
| Paramètre | Description | Par défaut | Autorisé |
|---|---|---|---|
apg_shared_plan_cache.enable |
Active ou désactive le cache des forfaits partagés | 0 (DÉSACTIVÉ) | 0, 1 |
apg_shared_plan_cache.max |
Le nombre maximum d'entrées de cache | 200 à 1 000 (en fonction de la taille de l'instance) | 100 à 50 000 |
apg_shared_plan_cache.min_size_per_entry |
Taille minimale du forfait à stocker dans le cache partagé. Les forfaits plus petits utilisent le cache local pour optimiser les performances OLTP. | 16 Ko | 0—32768 (KO) |
apg_shared_plan_cache.max_size_per_entry |
Taille maximale du forfait pour le cache partagé. Les forfaits plus importants ne stockent que les informations relatives aux coûts. | 256 Ko à 4 Mo (selon la taille de l'instance) | 0—32768 (KO) |
apg_shared_plan_cache.idle_generic_plan_release_timeout |
Délai après lequel les sessions inactives publient les plans génériques locaux. Des valeurs plus faibles permettent d'économiser de la mémoire ; des valeurs plus élevées peuvent améliorer les performances. | 10 secondes | 0—2147483647 (ms) |
Note
Vous pouvez modifier tous les paramètres sans redémarrer.
Vues et fonctions de surveillance
apg_shared_plan_cache()— Affiche des informations détaillées sur les entrées de cache (accès, validité, horodatages)apg_shared_plan_cache_stat()— Affiche les statistiques au niveau de l'instance (expulsions, invalidations)apg_shared_plan_cache_reset()— Supprime toutes les entrées dansapg_shared_plan_cache()etapg_shared_plan_cache_stat()apg_shared_plan_cache_remove(cache_key)— Supprime une entréeapg_shared_plan_cache()dont elle correspond àcache_key
Limitations
Fonctionne uniquement avec les instructions préparées et ne met pas les PL/pgSQL instructions en cache
Ne met pas en cache une requête contenant des tables temporaires ou des tables de catalogue
Ne met pas en cache une requête qui dépend de RLS (Row-Level sécurité)
Chaque réplica gère son propre cache (pas de partage entre répliques)