Consultar los deadlocks acumulados en PostgreSQL con pg_stat_database

La vista pg_stat_database muestra los deadlocks detectados por base de datos y cuándo se reiniciaron sus estadísticas.

Esquema de deadlocks y contador acumulado en pg_stat_database

¿Cómo saber si PostgreSQL ha detectado interbloqueos en una base de datos? Consulta deadlocks en pg_stat_database; el contador es acumulado desde el último reinicio de estadísticas.

Consultar los deadlocks

SELECT datname,
       deadlocks,
       stats_reset
FROM pg_stat_database
WHERE datname = current_database();

deadlocks indica cuántos interbloqueos se han detectado en esa base de datos desde el último reinicio de las estadísticas. stats_reset permite situar temporalmente el contador; puede ser NULL si no hay una marca de reinicio registrada.

El valor es acumulado, no una tasa ni una lista de consultas afectadas. Para medir nuevos eventos, toma dos lecturas separadas y compara el contador teniendo en cuenta stats_reset.

Consultar todas las bases de datos

Quita el filtro para ver las filas disponibles en la instancia:

SELECT datname,
       deadlocks,
       stats_reset
FROM pg_stat_database
ORDER BY datname NULLS FIRST;

La fila con datname nulo representa estadísticas de actividad que no se atribuyen a una base de datos concreta; no la interpretes como una base de datos llamada NULL.

Esta vista informa del número de deadlocks, pero no conserva las consultas que participaron. Para investigar un caso, revisa los registros de PostgreSQL y la configuración de registro de deadlocks.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *