PostgreSQLLa base de données la plus sophistiquée au monde.
Documentation PostgreSQL 18 beta 2 » Internes » Vues système » pg_backend_memory_contexts

53.5. 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

name text

Nom du contexte mémoire

ident text

Information d'identification du contexte mémoire. Ce champ est tronqué à 1024 octets

type text

Type du contexte mémoire

level int4

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 path.

path int4[]

Tableau d'identifiants numériques pour décrire la hiérarchie des contextes mémoires. Le premier élément est pour TopMemoryContext, les éléments suivants contiennent les parents intermédiaires et l'élément final contient l'identifiant pour le contexte actuel.

total_bytes int8

Nombre total d'octets alloués pour ce contexte mémoire

total_nblocks int8

Nombre total de blocs alloué pour ce contexte mémoire

free_bytes int8

Espace libre en octets

free_chunks int8

Nombre total de morceaux libres

used_bytes int8

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.