Em 25 de julho de 2012 14:38, Vinicius Santos
<vinicius.santos.li...@gmail.com> escreveu:
>
> Nossas estatísticas estão atualizadas, já tentei mudar a consulta de várias
> formas, mas preciso utilizar o operador IN.

Por que precisa utilizar o IN? De acordo com o número de registros o
PostgreSQL é inteligente o suficiente para escolher entre um índice ou
outro, ou então um "seq scan", principalmente quando o índice não
interfere em nada - no caso, com 1 registro na tabela.

Como sugestão, você pode trocar o seu "IN" por "EXISTS" fazendo apenas
uma pequena modificação:

SELECT chave, produto FROM visao WHERE EXISTS ( SELECT 1 FROM
produtos_contados WHERE visao.produto = produtos_contados.codigo )

Assim obterá mais desempenho, mas para observar mudança no plano de
acesso terás que popular sua tabela com mais registros.

-- 
TIAGO J. ADAMI
http://www.adamiworks.com
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a