> A tabela contém muitos registros, por isso a criação de indice. > Estou usando indice composto (para a linha grifada em resposta anterior). > Passar a estrutura da tabela, fica complicado. > A consulta eh a seguinte: > SELECT count(distinct(rdelrde)), count(tid), sum(tvlr) > FROM titulo, rdel, grrde, grp, csk > WHERE > (ttctr = rdelctr) and > (grpcsk = cskid ) and > (rdelrde = grrderde) and > (grrdegrp = grpid) and > (cskid = 5) and > (tsac = '70064993000140') and > (tpgt is null) and > (tvct >= '2008-05-14 00:00:00') and > (tvct <= '2008-07-14 00:00:00') > LIMIT 1; > Mas a consulta eh pra retornar informações sobre qtas lojas, qtos titulos > e o valor do titulo quando a condicao for verdadeira.
Como já havia escrito na outra mensagem ... Se você tiver MUITOS NULLS na tabela ou se o Indice não foi criado corretamente, ele não será usado mesmo. Normalmente , se 30% dos valores da hash forem NULLS, o planejador não usará o indice, pq é mais rápido fazer scan. Outra possibilidade é criar indice composto condicional (tsac AND ISNULL(tpgt)) e utilizar a funcao na comparação ! Bem .. acho que é isso... -- Att: Thiago Risso _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
