-----Mensagem Original----- From: Osvaldo Kussama
Sent: Friday, August 26, 2016 11:42 AM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Commit a cada Insert ou N registros?

Em 26/08/16, [email protected]<[email protected]> escreveu:
From: Douglas Fabiano Specht
Sent: Friday, August 26, 2016 11:16 AM
To: Comunidade PostgreSQL Brasileira
Subject: Re: [pgbr-geral] Commit a cada Insert ou N registros?


Obrigado pela resposta Douglas, eu fiz uns testes aqui e relamente commit em
bloco é mais rápido, minha duvida é com relação a quantidade de registros
que posso manter em cache antes do commit, eu gostaria que, se a transação
desse algum erro ele não alterasse nada, pois se der um erro vou pedir ao
usuario para executar a rotina novamente após a correção, mas vou ter que
estudar melhor isso, pois creio que haja um limite nesse bloco, nada que
umas validações a mais não resolva.



Note que se você fizer COMMIT a cada n registros e der algum problema
muito provavelmente você já terá permanentemente em sua base os
registros já commitados.
Não será possível simplesmente reexecutar a rotina. A rotina tem que
saber a partir de que ponto ela deve continuar o processamento.
Uma possível solução é você imprimir a cada COMMIT a quantidade de
registros já processados e, em caso de reprocessamento, informar ao
programa quantos registros ele deve saltar.

Osvaldo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral


Sim, o detalhe é mais performance e o quanto posso manter em cache antes de comitar, eu já mantenho um campo status mostrando que aquele registro foi anterado, como hoje faço registro a registro esse campo status me ajuda no reprocesso, o que estou estudando é comitar todo o processo de uma vez ou a cada N registros, eu prefero ao final do processo porque se der um erro posso dizer ao usuario que nada mudou, mas se não der vou ter que fazer um controle do que foi alterado elo campo status e numero de processo.


Marcelo
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a