Sobes.tech
Junior — Middle

Como identificar e analisar uma consulta que demora a ser executada no PostgreSQL?

sobes.tech IA

Resposta da IA

Para identificar consultas que demoram a ser executadas no PostgreSQL, pode usar a visualização do sistema pg_stat_activity, que mostra as consultas ativas atuais e o seu tempo de execução. Por exemplo, a consulta:

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

permitirá ver as 5 consultas ativas mais longas.

Para uma análise mais aprofundada, pode ativar o registo de consultas lentas no postgresql.conf:

log_min_duration_statement = 1000  # registar consultas com duração superior a 1000 ms

Depois disso, todos os pedidos que excederem esse tempo serão registados nos logs.

Também é útil usar ferramentas de profiling e EXPLAIN ANALYZE para analisar o plano de execução de consultas específicas e identificar gargalos.