Bom dia pessoal,
Trabalho com as 2 versoes do postgres 8.2 e 8.3(em desenvolvimento),percebei 
que uma query necessecitava de index, a query abaixo:
select count(distinct cliente0_.clie_id) as col_0_0_ from cadastro.cliente 
cliente0_ 
left outer join cadastro.cliente_tipo clientetip1_ on 
cliente0_.cltp_id=clientetip1_.cltp_id
left outer join cadastro.cliente_endereco clienteend2_ on 
cliente0_.clie_id=clienteend2_.clie_id 
left outer join cadastro.logradouro_bairro logradouro3_ on 
clienteend2_.lgbr_id=logradouro3_.lgbr_id 
left outer join cadastro.bairro bairro4_ on 
logradouro3_.bair_id=bairro4_.bair_id 
left outer join cadastro.municipio municipio5_ on 
bairro4_.muni_id=municipio5_.muni_id
where
(upper(cliente0_.clie_nmcliente) like 'EDNALDO F%') 
and municipio5_.muni_id=960
custo em desenv:
Aggregate  (cost=130511.50..130511.51 rows=1 width=4)      
e fazendo seqsan --> Seq Scan on cliente cliente0_  (cost=0.00..65513.43 
rows=10371 width=8)
solucao no ambiente de desenvolvimento:
  CREATE INDEX xix1_cliente
  ON cadastro.cliente
  USING btree
  (upper(clie_nmcliente))
apos isso o custo da mesma foi para:
Aggregate  (cost=35.81..35.82 rows=1 width=4)
usando o indice criado .
Em producao com a versao do banco 8.2, foi aplicado a mesma logica:
custo inicial:
Aggregate  (cost=63528.48..63528.49 rows=1 width=4)
custo final:
Aggregate  (cost=63916.38..63916.39 rows=1 width=4) 
o indice nao foi utilizado, as tabelas sao iguais em estrutura e os counts sao 
praticamente os mesmos.
count(*) de   prod  =2109183
count(*) de desenv =2089314
Sera que o postgres 8.2 não suporta este tipo de index?
Att
Paulo


      
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a