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
