Pessoal, desculpe, mas na conta que fiz, cometi um erro, não considei
o . (ponto) como separador decimal, como é feito no Inglês.
Mas mesmo assim o resultado final da mensagem anterior é próximo a 182
minutos. Ou seja

419.113/1000 = 0.41 segundos  * 26469 (loops) = 11093.50 segundos or 184 minutos

Depois de analisar, vi que em alguns lugares do plano, está utilizando
Paralelismo. Será que isto explica porque o valor final em minutos
gasto para percorrer um índice (184 minutos) é maior que o tempo total
da query (66 minutos)?

Em 7 de setembro de 2017 20:02, Neto pr <[email protected]> escreveu:
> Saudacões,
> Estou tentando interpretar um Explain Analyze, mas travei nisso:
>
> --> Segundo a documentacão do Postgresql em:
> http://pgdocptbr.sourceforge.net/pg80/performance-tips.html
>
> "o valor de "loops" (laços) expressa o número total de execuções do nó, e os
> valores de "actual time" (tempo real) e "rows" (linhas) mostrados são
> valores médios por execução.... Deve ser multiplicado pelo valor de "loops"
> para obter o tempo total realmente gasto no nó."
>
> Mas veja esse caso, em que o tempo total da query foi de 66 minutos.
> ( Explain Analyze completo e Query nesse link: https://goo.gl/Kp45fu  ou
> anexo )
>
> O que me interessa é este trecho:
>
> #####################################################################################
>    ->  Index Scan using idx_l_partkeylineitem000x on lineitem
> (cost=0.57..97.65 rows=26 width=36)
>                   (actual time=23.615..419.113 rows=30 loops=26469)
>                   Index Cond: (l_partkey = part.p_partkey)
> #####################################################################################
> Segundo a documentacão, deveria-se multiplicar o Actual Time pelo número de
> Loops.
> Ou seja:   419113 ms --> 419113/1000/60 =  6.9 minutos  * 26469 (loops) =
> 182,6 minutos.
>
> Mas como esse trecho demora 182,6 minutos, se a query inteira executou em 66
> minutos?
>
> Claro que estou cometendo algum erro de cálculo, mas se alguém puder me dar
> uma dica de como faria esse cálculo de tempo.
> O que preciso é saber qual o tempo gasto para percorrer o índice
> idx_l_partkeylineitem000x, lembrando que fiz um Explain Analyze que
> teoricamente é o tempo real gasto e não uma estimativa como no Explain.
>
> []'s Neto
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a