2009/5/28 José Augusto de Lima Pereira <[email protected]> > > 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) > > Caro José Augusto,
Além das recomendações do colega Euler, você poderia pensar em refatorar [1] a tua estrutura de dados... pelo que entendi você tem uma tabela que contém toda tua movimentação e gera uma secundária com o resumo das movimentações (me corrija se estiver errado) então você cria esse *resumo* executando um SELECT que tem alto custo para o banco de dados... Você poderia ao invés de executar esse SELECT, que é custoso, criar uma trigger na tabela das movimentações que atualiza a tabela do resumo das movimentações quanto houver INSERT/UPDATE/DELETE... Com a aplicação do *database refactoring* [1] denominado *Introduce Read-Only Table* você consegue rapidamente montar essa estrutura, pois a tabela *read-only* você já implementa, então falta somente a trigger para atualização dos dados. Existe também a possibilidade de utilizar Rules [2] ao invés de triggers... inclusive esses dias um colega postou na lista uma dica interessante do uso de rules [3] Espero ter ajudado. [1] http://www.agiledata.org/essays/databaseRefactoringCatalog.html [2] http://www.postgresql.org/docs/8.3/interactive/sql-createrule.html [3] http://www.nabble.com/Exemplo-do-uso-de-rule-para-trocar-um-insert-por-update--to23677237.html -- Fabrízio de Royes Mello >> Blog sobre PostgreSQL: http://fabriziomello.blogspot.com
_______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
