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
