> Cara, cuidado! > > "Seq scan" não é sinônimo de lentidão. Como o Tiago disse, caso a tabela > produtos não seja muito grande (e.g. algumas páginas) é natural que o > PostgreSQL escolha um "seq scan" ao invés de um "index scan", já que o > "index scan" poderia acarretar mais leituras em disco que um simples "seq > scan". >
Certo. O que quis dizer é que o select está literamente passando todos os registros da tabela de produto. Eu comprovei isto assim: SELECT chave, produto, funcao_teste( chave ) FROM visao WHERE produto IN ( SELECT codigo FROM produtos_contados ) Dentro da funcao_teste eu dou um RAISE NOTICE, com o código do produto, passado por parâmetro na função. Eu pude verificar que o select dessa maneira, com IN, está passando em todos os produtos cadastrados. Se eu fizer sem o IN, passando os valores literais, apenas os registros corretos são lidos, também pude comprovar isto com a saída da funcao_teste. O que me intriga, é que atualizamos a versão do kernel rescentemente, da 2.6 para 3.2, e ao mesmo tempo atualizamos o PostgreSQl do 8.4.8 para 8.4.12. Teoricamente, a atualização não tem nada a ver. Certo?
_______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral