Paulo, boa tarde... No teu email inicial, você disse que criou o indice xix1_cliente em desenv e resolveu, mas não resolveu em produção. Olhando o teu explain, podemos ver que um dos pontos de impacto, como falado anteriormente é a entidade logradouro_bairro:
Desenv: -> Index Scan using logradouro_bairro_pkey on logradouro_bairro logradouro3_ (cost=0.00..6.07 rows=1 width=8) (actual time=9.047..9.048 rows=1 loops=284) Index Cond: (logradouro3_.lgbr_id = clienteend2_.lgbr_id) Produção: -> Seq Scan on logradouro_bairro logradouro3_ (cost=0.00..2033.86 rows=117186 width=8) (actual time=0.011..359.858 rows=117186 loops=1) Temos um acesso sequencial ai... E nesse ponto, o custo da consulta comeca a ficar muito elevada. Dá uma olhada nessa entidade em produção... Se para o atributo em questão você tem um indice... Outra coisa, para melhorar um pouco o banco na hora do parse, inverta a ordem dos atributos no teu relacionamento (o analisador de consultas provavelmente vai fazer isso pra vc, mas não custa nada dar uma "maozinha"... rsss), algo como: select count(distinct cliente0_.clie_id) as col_0_0_ from cadastro.cliente cliente0_ left outer join cadastro.cliente_tipo clientetip1_ on clientetip1_.cltp_id = cliente0_.cltp_id left outer join cadastro.cliente_endereco clienteend2_ on clienteend2_.clie_id = cliente0_.clie_id left outer join cadastro.logradouro_bairro logradouro3_ on logradouro3_.lgbr_id = clienteend2_.lgbr_id left outer join cadastro.bairro bairro4_ on bairro4_.bair_id = logradouro3_.bair_id left outer join cadastro.municipio municipio5_ on municipio5_.muni_id = bairro4_.muni_id where (upper(cliente0_.clie_nmcliente) like 'EDNALDO F%') and municipio5_.muni_id=960 Considere também a possibilidade de substituir os "left outer join" por "inner join" (como falado tb), claro se a lógica do sistema permitir... Pois o custo de outer joins pro banco é alto... Espero ter ajudado. Att, -- Charly Frankl http://javadevilopers.blogspot.com/ charlyfra...@gmail.com Linux user #391083 2009/7/31 paulo matadr <saddon...@yahoo.com.br> > Boa tarde euler, > nao houve mudanca no plano..fui ate 64 de work e nada > > ------------------------------ > *De:* Euler Taveira de Oliveira <eu...@timbira.com> > *Para:* Comunidade PostgreSQL Brasileira < > pgbr-geral@listas.postgresql.org.br> > *Enviadas:* Quarta-feira, 29 de Julho de 2009 18:14:19 > *Assunto:* Re: [pgbr-geral] Res: Res: Analise de uso de index entre 8.2 ou > 8.3 > > paulo matadr escreveu: > > Os parametros do servidor aparentemente importantes sao: > > > Qual é o valor de work_mem? Você tentou fazer: > > SET work_mem to 16MB; > EXPLAIN ANALYZE SELECT ...; > SET work_mem to 8MB; > EXPLAIN ANALYZE SELECT ...; > SET work_mem to 32MB; > EXPLAIN ANALYZE SELECT ...; > > O plano mudou? > > Outra coisa é que você está utilizando LEFT JOIN em todas as junções. Eles > são > realmente necessários ou tem algum deles que pode ser um INNER JOIN > (aqueles > cuja chave estrangeira não pode ser nula)? Junções externas *não* > restringem > tanto o conjunto de dados quanto junções internas e, tendem a ser mais > custosas. > > > -- > Euler Taveira de Oliveira > http://www.timbira.com/ > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > > ------------------------------ > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top > 10<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/>- > Celebridades<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/celebridades/>- > Música<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/m%C3%BAsica/>- > Esportes<http://br.rd.yahoo.com/mail/taglines/mail/*http://br.maisbuscados.yahoo.com/esportes/> > > _______________________________________________ > pgbr-geral mailing list > pgbr-geral@listas.postgresql.org.br > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > >
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral