Entendi para que serve mas não entendi porque está acontecendo isso com uma 
tabela especifica. 
  Essa tabela guarda dados complementares de documentos fiscais e possui, como 
chave, 7 campos, todos sendo usados na clausula "on"  da consulta. Quando o 
Pgs usa o IndexScan, está fanzendo uso dos 7 parametros passados para os 7 
campos. No entanto quando ele passa a usar BitMapScan, está fazendo uso 
somente dos 2 primeiros campos. Por isso em vez de o Post pesquisar somente 
um registro (rows=1), ele está varrendo mais de 10.000 registros!

Em Qui 25 Mai 2006 13:33, Walter Cruz escreveu:
> O bitmapscan é usado no caso de colunas de baixa cardinalidade. Veja só!
>
> Imagine um tabela de cadastro de pessoas, que tivesse um campo Masculino e
> Feminino, representados por H ou M. Esse é uma coluna de baixa
> cardinalidade (apenas dois valores possíveis).
>
> Então, veja só:H e M ocupam 1 byte. Como são duas opções, o otimizador
> converte isso pra 0 ou 1 (bit) e joga isso na memória, para fazer uma
> comparação mais rápida... Sacou ?
>
> Bom, eu acho você tem de fazer mais testes na sua base
>
> Segundo esse documento:
> http://www.powerpostgresql.com/Downloads/annotated_conf_80.pdf esses
> parâmetros não devem ser modificados globalmente (mas veja, isso é só um
> documento)... Precisaria ser feita uma análise melhor :) É isso!
>
> []'s
> - Walter
_______________________________________________
Grupo de Usuários do PostgreSQL no Brasil
http://www.postgresql.org.br

Responder a