Conceito e mecanismo
EXPLAIN mostra o plano estimado; EXPLAIN ANALYZE executa o comando e recolhe medidas reais. Isto também se aplica a comandos que alteram dados. Usa um ambiente controlado para experiências com efeitos e não assumes que ROLLBACK elimina alterações a sequências ou ações externas. Compara linhas estimadas e observadas, operações repetidas e acesso a buffers. Custos do plano não são milissegundos. Estatísticas pouco representativas ou predicados difíceis de estimar podem explicar cardinalidade errada. ANALYZE atualiza informação estatística, mas um índice não é automaticamente a melhor escolha para uma consulta que lê grande parte da tabela.
Aplicação guiada
Num relatório fictício, uma melhoria isolada pode degradar o fecho quando muitos utilizadores correm a mesma consulta. work_mem aplica-se a operações, com vários consumidores por consulta e sessão; operações de hash têm multiplicador próprio. Mede concorrência antes de aumentar limites globalmente. pg_stat_statements ajuda a distinguir impacto acumulado de latência individual, mas não é um histórico completo de parâmetros. CREATE INDEX CONCURRENTLY reduz bloqueio de escritas durante a construção, com custos e restrições próprias. Uma falha pode deixar um índice INVALID que ainda tem overhead. A aceitação da mudança exige estado válido, plano observado e melhoria mensurável, além da existência do objeto.
Estimativa de 20 linhas e execução de 80000 orientam investigação; não provam que forçar um índice seja a correção.
Armadilhas comuns
ANALYZE como apenas leitura; cost como tempo; work_mem como teto global; índice criado como sucesso.
Tópicos relacionados: Ligações, identidades e privilégios · Transações, bloqueios e retoma · Vacuum, configuração e capacidade
Otimiza a execução e o workload, com critérios verificáveis.
Referência: Execution plans and runtime evidence · PostgreSQL 18 reference semantics;18.6 current stable at review