← Voltar para os artigos

Como ler um plano de execução sem ser DBA

Por Fernando Nagao Douverny · 06 de agosto de 2026 · 2 min de leitura

intermediário

A query demora dois minutos. Você olha o código e não vê nada de absurdo. E agora?

A essa altura, adivinhar é caro. O banco já sabe o que fez — e conta, se você perguntar com EXPLAIN.

O que o EXPLAIN devolve

EXPLAIN
SELECT c.nome, SUM(p.valor)
FROM clientes c
JOIN pedidos p ON p.id_cliente = c.id
GROUP BY c.nome

O que volta não é o resultado da query: é o plano — a sequência de passos que o banco pretende executar. Ele se lê de dentro para fora, ou de baixo para cima: os passos mais indentados acontecem primeiro e entregam o resultado para o passo acima.

Cada banco escreve isso com palavras um pouco diferentes, mas as peças são as mesmas.

As três coisas que importam

1. Como cada tabela é lida. Duas palavras resolvem:

  • scan (varredura / sequential scan) — leu a tabela inteira
  • seek / index scan — usou o índice para ir direto

Varredura não é sempre ruim: se a query precisa de 80% das linhas, ler tudo é o caminho mais rápido mesmo. Vira problema quando você pediu três linhas e o plano leu dez milhões.

2. Quantas linhas ele espera. O plano traz uma estimativa de linhas por passo. Compare com o que você sabe do negócio: se ele estima 50 linhas onde você sabe que existem 2 milhões, a estimativa está errada — e uma estimativa errada leva a um plano errado, normalmente porque as estatísticas da tabela estão desatualizadas.

3. Onde o volume explode. Percorra os passos olhando o número de linhas subir. Quase toda query lenta tem um ponto em que o volume salta de milhares para milhões — em geral um JOIN sem a chave certa, duplicando linha. Esse passo é o gargalo, e é nele que vale mexer.

O que fazer com a informação

Achado o passo caro, as saídas costumam ser poucas:

  • Varredura onde deveria ter índice → falta índice, ou tem uma função em volta da coluna
  • Volume explodindo num JOIN → a chave não é única do lado que você achava
  • Estimativa muito longe do real → estatísticas desatualizadas

Pra lembrar

Não é preciso entender o plano inteiro. Ache o passo em que o número de linhas dispara e comece por ali.

Otimizar sem olhar o plano é trocar peça de carro no escuro. O EXPLAIN custa segundos e transforma o palpite em diagnóstico.