Entendendo o formato de hora do comando EXPLAIN - Postgres


14

Quando executo o comando EXPLAIN ANALYZE em uma determinada consulta, estou tendo dificuldades para interpretar o valor do tempo gerado. Por exemplo (tempo real = 8163.890..8163.893). Os decimais internos representam caracteres repetidos? Desculpe, essa pode ser uma pergunta noobish, mas quero ter certeza de que estou interpretando os resultados corretamente.

   ->  GroupAggregate  (cost=2928781.21..2929243.02 rows=1 width=27712) (actual time=8163.890..8163.893 rows=1 loops=1)

Respostas:


19

actual time=8163.890..8163.893 significa

A inicialização dessa etapa ("inicialização") levou 8163.890ms A
execução da etapa inteira levou 8163.893ms

Portanto, nesse caso, quase todo o trabalho foi realizado na fase de inicialização dessa etapa.

Editar :
a mesma lógica é "aplicada" às informações de custo

cost=2928781.21..2929243.02 significa:

O custo para inicializar esta etapa foi estimado em: 2928781.21
O custo para executar a etapa foi estimado em: 2929243.02

(observe que "custo" não tem uma unidade - é um valor arbitrário)

Isso também é explicado aqui: http://www.postgresql.org/docs/current/static/using-explain.html


Obrigado pela informação ea ligação - Eu também achei este documento útil, embora um pouco desatualizado
Jmoney38

Obrigado pelo link. O documento não está realmente desatualizado. Versões mais recentes do PostgreSQL mostram mais informações no plano, mas os princípios básicos ainda se aplicam.
a_horse_with_no_name

Como você interpreta uma análise de explicação com isso em um loop aninhado (actual time=0.002..0.002 rows=0 loops=119878):? Suponho que a média por loop tenha arredondado para zero linhas, o que é inútil, mas esses tempos realmente significam que o custo de execução é tão trivial que consiste inteiramente em custo de inicialização?
Davos

5

O primeiro número é o tempo que levou para retornar a primeira linha nessa etapa. O segundo número é o tempo que levou para retornar a última linha.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.