Como interpretar os resultados do comando EXPLAIN?
O exemplo abaixo é relativamente simples, mas no entanto é revelador.
explain select * from continente
Seq Scan on continente (cost=0.00..1.03 rows=3 width=646)
O resultado do comando apresenta quatro números para cada nó do plano de execução de uma consulta:
- Custo inicial - 0.00 - é o custo de execução da consulta até o inicio da saída dos resultados. No nosso exemplo, este custo é mínimo, pois a consulta ér relativamente simples. Em outros casos, pode ser que o maior custo de execução de consulta seja exatamente este custo inicial.
- Custo total - 1.03 - custo total estimado considerando que todas as linhas serão retornadas. O uso de LIMIT em consultas faz com que o custo total seja reduzido.
- Rows - estimativa de quantidade de registros retornados.
- Width - estimativa de quantidade de bytes retornados.
Um segundo exemplo torna ainda mais claro o funcionamento do comando.
explain select nome, obs from continente order by nome
Sort (cost=1.05..1.06 rows=3 width=634)
Sort Key: nome
-> Seq Scan on continente (cost=0.00..1.03 rows=3 width=634)
Uma pequena mudança na consulta anteriori fez com que fossem necessárias várias operações antes do retorno dos resultados. Cada operação tem individualizados os custos inicial, total, em termos de linhas e em termos de bytes.
São informações que podem ser bastante úteis na otimização de consultas através do comando EXPLAIN.
Abaixo, duas consultas bastante semelhantes e seus custos. A simples utilização dos campos na cláusula select ao invés do * já causou uma importante redução no custo de execução da consulta no que tange à estimativa da quantidade dos bytes retornados:
explain select * from continente order by nome
Sort (cost=1.05..1.06 rows=3 width=646)
Sort Key: nome
-> Seq Scan on continente (cost=0.00..1.03 rows=3 width=646)
explain select nome from continente order by nome
Sort (cost=1.05..1.06 rows=3 width=118)
Sort Key: nome
-> Seq Scan on continente (cost=0.00..1.03 rows=3 width=118)
Nenhum comentário:
Postar um comentário