2009/5/28 José Augusto de Lima Pereira <[email protected]>: > >>José Augusto de Lima Pereira escreveu: >> Esse é o resultado do explain verbose. >> >>EXPLAIN ANALYZE por favor. > Coloquei para rodar um EXPLAIN ANALYZE as 9:00 e está rodando ainda (11:30), > assim que tiver o resultado eu envio aqui. > >>As definições de índices e tabelas envolvidas também ajudariam. > É apenas uma tabela, para testes coloquei apenas 50 milhões de linhas, mas o > total dela será de 365 milhões (1 milhão de linha por dia) > Já fizemos vários testes de índices aqui, e a ultima tentativa (que está > agora, é um índice para cada uma das colunas que está no group by que é > feito nessa tabela.) > > Para ficar mais fácil de entender essa tabela, ela me diz todas as > movimentações que foram feitas (saiu de A e depois de x tempo foi pra B, > saiu de B e depois de x tempo foi pra A). > Esses dados vem de um arquivo texto, então para diminuir a quantidade de > registro em uma tabela que eu realmente vou trabalhar( fazer varias > comparações para obter alguns ID´s) faço uma agrupamento nessa tabela. Esse > agrupamento com 50 milhões de linhas, sem índice, demora mais de 5 dias e > quando eu tento rodar essa consulta com índice, se for a cada 400.000 > registro, é feita em milisegungos, se for 410.000 demora 2 horas, só que o > agrupamento que eu preciso, tem que suportar pelo menos 1 milhão de linhas > (que são meus lançamentos do dia) > >> O PostgreSQL talvez esteja preferindo um _seqscan_ ao invés de um > _indexscan_ porque ele está consultando boa parte de sua tabela? > A consulta é feita sobre todos os dados dessa tabela. É um group by, que não > possuir WHERE, esse group by é feito para diminuir a quantidade de linhas em > uma outra tabela (geralmente cai num fator de 10/1) >
Se não possui a cláusula WHERE então vai considerar todos os registros. Neste caso um seqscan é *sempre* mais eficiente que um indexscan qualquer que seja o índice. >> O shared_buffers não é o total de memória que meu postgres vai utilizar? >> Sempre vi falar em usar, 70% da memória total. >> >>*Não*. Vide algumas de minhas palestras [1] e artigos de alguns colegas [2] > sobre o assunto. > Vou ler esses artigos, e tentar fazer algumas alterações em minhas > configurações. Muito obrigado >>[1] http://www.timbira.com/docs.php >>[2] http://wiki.postgresql.org/wiki/Portugu%C3%AAs > Osvaldo _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
