pg_backend_memory_contexts
#
La vue pg_backend_memory_contexts
affiche tous les
contextes mémoire du processus serveur attaché à la session en cours.
pg_backend_memory_contexts
contient une ligne pour
chaque contexte mémoire.
Tableau 53.5. Colonnes de pg_backend_memory_contexts
Type de colonne Description |
---|
Nom du contexte mémoire |
Information d'identification du contexte mémoire. Ce champ est tronqué à 1024 octets |
Type du contexte mémoire |
Le niveau du contexte (en commençant à partir de 1) dans la hiérarchie
de contextes mémoire. Le niveau d'un contexte affiche aussi la position
de ce contexte dans la colonne |
Tableau d'identifiants numériques pour décrire la hiérarchie des
contextes mémoires. Le premier élément est pour
|
Nombre total d'octets alloués pour ce contexte mémoire |
Nombre total de blocs alloué pour ce contexte mémoire |
Espace libre en octets |
Nombre total de morceaux libres |
Espace utilisé en octets |
Par défaut, la vue pg_backend_memory_contexts
peut
seulement être lue par les superutilisateurs ou par les rôles qui ont les
droits du rôle pg_read_all_stats
.
Comme les contextes mémoires sont créés puis détruits pendant l'exécution
d'une requête, les identifiants trouvés dans la colonne
path
peuvent être instables entre plusieurs
appels à la vue dans la même requête. L'exemple ci-dessous démontre une
utilisation intéressante de cette colonne et calcule le nombre total d'octets
utilisé par CacheMemoryContext
et tous ses enfants :
WITH memory_contexts AS ( SELECT * FROM pg_backend_memory_contexts ) SELECT sum(c1.total_bytes) FROM memory_contexts c1, memory_contexts c2 WHERE c2.name = 'CacheMemoryContext' AND c1.path[c2.level] = c2.path[c2.level];
La Common Table Expression est utilisée
pour s'assurer que les identifiants de contexte dans la colonne
path
correspondent entre les deux évaluations de
la vue.