Segue minha análise. Caso eu esteja errado, sintam-se à vontade para me
corrigir, assim eu aprendo junto:

O join da tabela "nfe_empresa ng"(2) com a tabela "nfe_ident ni"(1) resulta
em "2878 linhas"(3).
Para cada linha do resultado, é feito um "join" com "nfe n"(4) e (5)
identificador por loops=2878
Depois com (ver Nested Loop)
nfe_emitente ne:      Para cada de "n" linha do join é feito uma busca no
índice loops=2878 (creio que o problema esteja aqui, pois aumenta muito o
custo)
"              ->  Nested Loop  (cost=755.68..175486.51 rows=10 width=204)
(actual time=3691.454..12259.435 rows=2878 loops=1)"
Depois com (ver Nested Loop)
nfe_destinatario nd:  Para cada de "n" linha do join é feito uma busca no
índice loops=2878
Depois com (ver Nested Loop)
nfe_transp nt:        Para cada de "n" linha do join é feito uma busca no
índice loops=2878

Por último é feito join do resultado dos passos anteriores com o subplano 9
(que não é tão custoso, pois não retorna nenhuma linha)


(1)->Index Scan using pk_nfe_ident on nfe_ident ni  (cost=0.56..6.96 rows=1
width=82) (actual time=0.172..0.172 rows=0 loops=19692)"
(2)->Bitmap Heap Scan on nfe_empresa ng  (cost=754.02..35223.76 rows=20080
width=42) (actual time=181.835..2081.888 rows=19692 loops=1)"
(3)->Nested Loop  (cost=754.57..175161.36 rows=45 width=124) (actual
time=3691.302..5502.554 rows=2878 loops=1)"
(4)->Index Scan using pk_nfe on nfe n  (cost=0.56..6.85 rows=1 width=96)
(actual time=0.043..0.043 rows=1 loops=2878)"
(5)->Nested Loop  (cost=755.13..175470.60 rows=21 width=220) (actual
time=3691.387..5640.336 rows=2878 loops=1)"

2017-04-25 22:07 GMT-03:00 Alexsandro Haag <[email protected]>:

>
> Em 25/04/2017 21:10, Júlio César Martini escreveu:
>
>>
>> O que me chamou atenção ao fazer o EXPLAIN nesta SQL é que na lenta tem
>> um SORT que aparentemente é ele o causador, mas não entendi o pq visto que
>> não faço ORDER BY de nada (me desculpe se falei algum absurdo).
>>
>
> Me parece mais que o seq_scan seja o causador da lentidão.
> Voce tem um índice auxiliar para estas colunas?
>
>  * Sort Key: ng.cnpj_emitente, ng.numero, ng.serie, ng.tpamb, ng.mod
>
>
> Seria legal postar as suas queries também...
>
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a