53.5. pg_backend_memory_contexts #

La vista pg_backend_memory_contexts muestra todos los contextos de memoria del proceso del servidor acoplado a la sesión actual.

pg_backend_memory_contexts contiene una fila por cada contexto de memoria.

Table 53.5. pg_backend_memory_contexts Columns

Tipo de columna

Descripción

name text

Nombre del contexto de memoria

ident text

Información de identificación del contexto de memoria. Este campo se trunca a 1024 bytes

type text

Tipo del contexto de memoria

level int4

El nivel (basado en 1) del contexto en la jerarquía de contextos de memoria. El nivel de un contexto también muestra la posición de ese contexto en la columna path.

path int4[]

Array de identificadores numéricos transitorios para describir la jerarquía de contextos de memoria. El primer elemento es para TopMemoryContext, los elementos posteriores contienen los padres intermedios y el elemento final contiene el identificador del contexto actual.

total_bytes int8

Total de bytes asignados para este contexto de memoria

total_nblocks int8

Número total de bloques asignados para este contexto de memoria

free_bytes int8

Espacio libre en bytes

free_chunks int8

Número total de fragmentos (chunks) libres

used_bytes int8

Espacio usado en bytes


Por defecto, la vista pg_backend_memory_contexts solo puede ser leída por superusuarios o roles con los privilegios del rol pg_read_all_stats.

Dado que los contextos de memoria se crean y destruyen durante la ejecución de una consulta, los identificadores almacenados en la columna path pueden ser inestables entre múltiples invocaciones de la vista en la misma consulta. El ejemplo siguiente demuestra un uso eficaz de esta columna y calcula el número total de bytes utilizados por CacheMemoryContext y todos sus hijos:

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 expresión de tabla común (Common Table Expression) se utiliza para garantizar que los ID de contexto en la columna path coincidan entre ambas evaluaciones de la vista.