> até aqui legal. Porém quando faço: > > SELECT chave, produto FROM visao WHERE produto IN ( SELECT codigo FROM > produtos_contados ), > > o plano de execução muda radicalmente neste segundo caso, no segundo caso
Com "IN" esse comportamento é bem comum. O IN é bom para um conjunto limitado de valores. Por exemplo, produto in (10, 20, 40, 50). Fazer IN para "juntar" tabelas não é a melhor opção. Tente fazer um join, mais ou menos assim: SELECT v.chave, v.produto FROM visao v join produtos_contados pc on v.produto = pc.codigo; Creio que você terá resultados mais performáticos desta forma. -- Marcone Peres - DBA http://www.linkedin.com/in/marconeperes @marconeperes (61) 8146-0028 _______________________________________________ pgbr-geral mailing list pgbr-geral@listas.postgresql.org.br https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral