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?



Em 26 de agosto de 2016 10:29, <siste...@mvsoftware.com.br> escreveu:


  Pessoal estou fazendo uma rotina (com loop) que exige update numa lista de 
registros, estou na dúvida se é melhor dar Commit a cada Insert ou a cada X 
registros, qual a carga que o Postgres aguenta sem dar Commit a cada registro?

  Por exemplo, tenho um loop que atualiza 2mil registros (que irá aumentar a 
cada dia), dou o Commit a cada X registros ou só no final?
  Eu gostaria de "Comitar" no final, caso alguma coisa de errado, não bagunço a 
base, mas minha preocupação é a memoria que isso pode usar, se é que ele usa a 
memoria e não uma tabela temporária no disco.



  Marcelo

  _______________________________________________
  pgbr-geral mailing list
  pgbr-geral@listas.postgresql.org.br
  https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

bom dia Marcelo,
nos aqui na empresa tínhamos um problema de performance qdo efetuávamos uma 
grande quantidade de insert e efetuando commit registro a registro.
Atualmente mudamos para 5000 registros e melhorou muito.
mas por que 5000? como utilizamos multi-banco, acho que foi imposição do sql 
server 2008(se nao me engano) de só aceitar essa quantidade.

pense no seguinte:

insert into table values (1,1),(1,2),(1,3),(2,1);

....
e não
insert into table values (1,1);

insert into table values (1,2);

insert into table values (1,3);

insert into table values (2,1);


claro que você pode efetuar um teste de mesa bem simples e tirar as suas 
conclusões no seu ambiente.


-- 


Douglas Fabiano Specht

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.


Marcelo


--------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
_______________________________________________
pgbr-geral mailing list
pgbr-geral@listas.postgresql.org.br
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral

Responder a