Opa,

Em 17 de março de 2010 17:01, Tiago Valério <[email protected]>escreveu:

> Ja tinha feito isto antes de dar o explain porem na duvida fiz novamente e
> a saida foi a mesma
>
> "Limit  (cost=0.00..22827.32 rows=10000 width=39)"
> "  ->  Nested Loop  (cost=0.00..760910.00 rows=333333 width=39)"
> "        Join Filter: (a.datahora_processamento >
> b.datahora_processamento)"
> "        ->  Seq Scan on cnpj_rf b  (cost=0.00..24554.00 rows=1000000
> width=23)"
> "        ->  Index Scan using cnpjkey on ecnpj_teste_repro a
> (cost=0.00..0.72 rows=1 width=39)"
> "              Index Cond: (a.cnpj = (b.cnpj)::bpchar)"
> "              Filter: ((a.flag_processamento = 22) AND (a.flag_relacional
> = 0))"
>
> Olhando rapidamente, o problema me parece na leitura sequencial que esta
acontecendo na tabela cnpj_rf, acredito que um índice nesta tabela deve
resolver o problema.

>
> Em 17 de março de 2010 16:55, JotaComm <[email protected]> escreveu:
>
> Olá,
>>
>>
>> Em 17 de março de 2010 16:51, Tiago Valério 
>> <[email protected]>escreveu:
>>
>>  Pessoal estou executando a seguinte consulta(segue abaixo)  com o
>>> resultado de explain(segue abaixo) a tabela possui a mesma quantidade de
>>> registros 1.000.000, ambas possuem indices para os campos de juncao e campos
>>> da condicao.
>>>
>>> Porem o valor de Nested Loop esta alto.Teria algo que possa ser feito
>>> para melhorar isto?
>>>
>>
>> Quando foi a última vez que rodou o ANALYZE?
>>
>>>
>>>
>>>
>>> "Limit  (cost=0.00..22827.32 rows=10000 width=39)"
>>> "  ->  Nested Loop  (cost=0.00..760910.00 rows=333333 width=39)"
>>> "        Join Filter: (a.datahora_processamento >
>>> b.datahora_processamento)"
>>> "        ->  Seq Scan on cnpj_rf b  (cost=0.00..24554.00 rows=1000000
>>> width=23)"
>>> "        ->  Index Scan using cnpjkey on ecnpj_teste_repro a
>>> (cost=0.00..0.72 rows=1 width=39)"
>>> "              Index Cond: (a.cnpj = (b.cnpj)::bpchar)"
>>> "              Filter: ((a.flag_processamento = 22) AND
>>> (a.flag_relacional = 0))"
>>>
>>>    select
>>>     a.cnpj as cnpj_atual,
>>>     cdmatriz_changed ,
>>>     data_abertura_changed,
>>>     razao_social_changed ,
>>>     fantasia_changed,
>>>     cdnatureza_changed,
>>>     logradouro_changed,
>>>     numero_changed,
>>>     complemento_changed,
>>>     cep_changed,
>>>     bairro_changed,
>>>     municipio_changed,
>>>     uf_changed,
>>>     cdsitcadastral_changed,
>>>     cdmotivosituacao_changed,
>>>     cdsitcadastralesp_changed,
>>>     cnaes_changed,
>>>     a.datahora_processamento as data_atual
>>>
>>>
>>>    from   ecnpj_teste_repro  a left join cnpj_rf  b
>>>     on a.cnpj=b.cnpj
>>>
>>>
>>>     where  a.flag_processamento=22 and a.flag_relacional=0 and
>>> a.datahora_processamento > b.datahora_processamento
>>>
>>>           LIMIT 10000
>>>
>>> _______________________________________________
>>> pgbr-geral mailing list
>>> [email protected]
>>> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
>>>
>>>
>>
>> []s
>> --
>> JotaComm
>> http://jotacomm.wordpress.com
>>
>> _______________________________________________
>> 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
>
>

[]s
-- 
JotaComm
http://jotacomm.wordpress.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a