FC
Perfomace do update
Fechado
Uma dúvida cotidiana minha, eu tenho uma rotina onde eu preciso atualizar registro baseado na leitura de um xml
Eu abro a transação com o banco de dados dentro ou fora do laço?
Eu abro a transação com o banco de dados dentro ou fora do laço?
Felipe
Para muitos registros o ideal seria dentro do laço com um contador.
A cada 500 registros, por exemplo você committa e abre uma nova transação.
Para poucos registros faça fora do laço.
Abraços
Obrigado Marcelo o Commit no Adianti ocorre no store ou ao fechar a conexão no close ?
Felipe
O commit ocorre no TTransaction::close().
Sempre fora do laço, conexão é uma coisa "cara" para o servidor , quanto menos melhor.
Sergio
Sim, é isso mesmo, mas depende da quantidade de registros.
Se forem muitos registros, pode ocorrer "time-out" do servidor e a rotina ser cancelada sem fazer o que é preciso.
Para muitos registros, é recomendável que se faça por partes para evitar time-out no servidor e perder a execução da rotina.
Lembrando que dependendo do ambiente ou empresa, o desenvolvedor não tem como alterar as variáveis do ambiente de produção...
Quando trabalhamos com grande volume de dados é complicado o jeito foi tratar os dados fora do servidor depois melhorar o algoritmo.
Obrigado a todos conseguir resolver.