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