Ir para o conteúdo
Totalmente local

Formatador de plano EXPLAIN SQL

Transforme um plano EXPLAIN ou EXPLAIN ANALYZE em uma árvore legível e indentada com as partes lentas marcadas.

Entrada
Saída

Formatador de plano EXPLAIN SQL

Cole a saída bruta de EXPLAIN ou EXPLAIN ANALYZE e esta ferramenta transforma a parede de texto numa árvore indentada de operações, com o custo, contagem de linhas e tempo de cada nó alinhados ao lado. Em vez de analisar um bloco denso de anotações "cost=… rows=… actual time=…", obtém uma forma que pode ler num relance — qual análise alimenta qual junção, e onde a consulta realmente gasta o seu tempo.

Escolha o dialeto que corresponde à sua base de dados: EXPLAIN ANALYZE do PostgreSQL e MySQL usam a mesma árvore indentada "-> ", EXPLAIN tabular clássico do MySQL é analisado linha por linha, e EXPLAIN QUERY PLAN do SQLite tem o seu próprio formato ASCII-árvore e id/parent. Cole texto simples ou mude o formato de entrada para JSON para EXPLAIN (FORMAT JSON) do PostgreSQL e saída EXPLAIN FORMAT=JSON do MySQL. Mostrar contagem de linhas alterna as figuras de linhas estimadas versus reais, o limite de nó custoso controla que percentagem do custo total ou tempo faz um nó merecer a marca "custoso", e ocultar nós abaixo permite podar ramos de baixo custo de um plano comprido para destacar os desvios. Alterne a saída entre uma árvore indentada e uma tabela alinhada simples.

O custo e tempo que cada nó relata são cumulativos — já incluem todos os filhos — então a ferramenta subtrai os filhos de cada nó antes de classificar qualquer coisa, o que impede que o nó de nível superior da consulta pareça sempre o "custoso". A linha de resumo sob o plano totaliza as operações, conta quantas foram marcadas, e nomeia o ramo mais lento de raiz para folha para saber exatamente qual cadeia de operações investigar primeiro.

Tudo funciona localmente no seu navegador — um plano de consulta pode revelar nomes de tabelas e índices que preferiria não colar num formulário web aleatório, e nada é carregado para lado algum. Copie a árvore formatada, descarregue-a como ficheiro .txt, ou reenvie a saída para a entrada para ajustar o limite e reformatar.

FAQ

Que formatos EXPLAIN é que compreende?
Saída de árvore EXPLAIN ANALYZE do PostgreSQL e MySQL 8, EXPLAIN tabular clássico do MySQL, EXPLAIN QUERY PLAN do SQLite (tanto a árvore ASCII como as linhas brutas id/parent/detail), além dos formatos de plano JSON do PostgreSQL e MySQL.
Porque é que o nó de nível superior nem sempre é marcado como custoso?
O custo e tempo relatados por um nó já incluem tudo abaixo, por isso a ferramenta compara a própria quota de cada nó após subtrair os filhos — é isso que aponta o gargalo real em vez de destacar sempre a raiz.
O que acontece se o plano do SQLite não tem dados de custo?
O EXPLAIN QUERY PLAN do SQLite não relata custo ou tempo, por isso a árvore ainda formata e o resumo diz honestamente em vez de adivinhar um destaque.
É que "ocultar nós abaixo" apaga algo do meu plano?
Não — apenas omite linhas de baixa quota desta vista. A operação raiz fica sempre visível para a árvore manter a sua âncora; reexecute com um limite inferior para ver tudo de novo.
É que meu plano de consulta é carregado para algum lado?
Não. A análise e formatação acontecem inteiramente no seu navegador — o plano, e qualquer nome de tabela ou índice nele, nunca deixa o seu dispositivo.