Pular para conteúdo

PG-TOPQUERY-001 · Uma única consulta domina o tempo de execução

Severidade Confiança Permissão Aplica-se a
Média Indício pg_monitor (pg_read_all_stats) + pg_stat_statements PostgreSQL 14+, RDS, Aurora, Azure Flexible

O que verifica

Comandos de nível superior no pg_stat_statements. Aparece quando a consulta mais cara leva pelo menos 40% do tempo total de execução (dominant_pct) e o total é de pelo menos 60 s (min_total_s). A evidência lista as 5 maiores com participação, chamadas, tempo médio, linhas por chamada e taxa de acerto no cache.

Sem a extensão, a regra fica Sem dados e aponta para o PG-PGSS-001.

Por que importa

Quando uma consulta domina, corrigi-la é a mudança de maior retorno.

Próxima ação

EXPLAIN (ANALYZE, BUFFERS) <consulta com parâmetros reais>;

Procure scans sequenciais em tabelas grandes, estimativas de linhas muito longe da realidade, e sorts ou hashes indo para o disco. Veja também se ela roda mais do que a aplicação precisa (poucas linhas por chamada com chamadas enormes sugere o padrão N+1).

Limitações

Os totais acumulam desde o último pg_stat_statements_reset() ou restart, então não dá para saber desde quando a consulta domina. Sem pg_read_all_stats, os textos das consultas de outros usuários aparecem como <insufficient privilege>.