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.