Sobes.tech
Junior — Middle

¿Cómo identificar y analizar una consulta que tarda mucho en ejecutarse en PostgreSQL?

sobes.tech AI

Respuesta de la IA

Para identificar consultas que tardan mucho en ejecutarse en PostgreSQL, se puede utilizar la vista del sistema pg_stat_activity, que muestra las consultas activas actuales y su tiempo de ejecución. Por ejemplo, la consulta:

SELECT pid, now() - query_start AS duration, query
FROM pg_stat_activity
WHERE state = 'active'
ORDER BY duration DESC
LIMIT 5;

permitirá ver las 5 consultas activas más largas.

Para un análisis más profundo, se puede habilitar el registro de consultas lentas en postgresql.conf:

log_min_duration_statement = 1000  # registrar consultas que duren más de 1000 ms

Después de esto, en los registros se guardarán todas las consultas que superen el tiempo especificado.

También es útil usar herramientas de perfilado y EXPLAIN ANALYZE para analizar el plan de ejecución de consultas específicas y detectar cuellos de botella.