Oi Hasse, Obrigado pela sua explicação, vou testar isso aqui, existe alguma outra possibilidade sem criar as tmp tables??
2009/8/13 Mozart Hasse <[email protected]> > Olá Rauni, > > Um jeito de ensinar SQL para o otimizador do Postgres é o seguinte: > > create index tmp2 on hotel_description_translation (id,lang); > > create temporary table x as > select d.description_type_id, t.lang, count( t.id ) as count > from hotel_description_translation as t > group by t.id, t.lang; > > select d.description_type_id,t.lang > from x t > inner join hotel_description_translation d ON ( d.id = t.id ); > > Ou seja: crie uma tabela temporária contendo as totalizações, usando apenas > a tabela filha. > Essa consulta será simples o suficiente para o otimizador do Postgres usar > o > índice e montar os totais rapidamente (a consulta completa pelo visto é > complicada demais para ele...). > Depois, sobre uma tabela muito menor, mesmo sem usar índices, o Hash Join > do > Postgres vai ter um desempenho mais aceitável. > > Não tenho tuas tabelas, mas com duas minhas de volume e proporção similares > a resposta foi 5 vezes mais rápida. > > Atenciosamente, > > Mozart Hasse > > > _______________________________________________ > pgbr-geral mailing list > [email protected] > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral > -- Nei Rauni Santos [email protected] +55 41 85020985
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
