O que usar para ganhar performance? Na comparação de dados?
6 respostas
C
cybermec
Bom Dia,
Tenho 2 bancos de dados em maquinas diferentes e faço a atualização do banco A para o B.
então abro os dois bancos e faço os if da vida campo por campo…
Por que você compara campo a campo? Já tentou rodar um profiler para ver onde está o gargalo?
fabiocsilva
Se você está atualizando registros só precisa saber o ID, não?
for(/*registros de B*/){Aa=getA(b.id);if(a!=null){/* update B com dados de A. Pode usar um BeanUtils da vida pra copiar os atributos, criar um Copy Constructor ou usar outra estratégia pra não precisar copiar na mão */}}
Seria bom também você explicar porque não pode fazer isso pelo banco, já que seria infinitamente mais rápido.
rogelgarcia
Coloca registros campos com a ultima data de modificicacao… assim inicialmente voce só precisa verificar esse campo… se as datas forem diferentes… vc compara o resto
tkx
Exatamente!
Eu faria um campo, tipo última atualização para cada dado… ae eu faria uma triagem prévia por data, e atualizaria somente o q estava desatualizado!
Verdade! Pq n pode ser pelo banco, já que este oferece a funcionalidade “quase de graça”?
fabiocsilva
Creio que seja mais rápido simplesmente atualizar todos os campos do que fazer verificação de datas e ifs da vida. Não vai ser um grande trabalho pro banco de dados atualizar 5 campos ao invés de 1, já que vai tudo no mesmo update e é pro mesmo registro.
rogelgarcia
Creio que seja mais rápido simplesmente atualizar todos os campos do que fazer verificação de datas e ifs da vida. Não vai ser um grande trabalho pro banco de dados atualizar 5 campos ao invés de 1, já que vai tudo no mesmo update e é pro mesmo registro.