Auxílio com desempenho de update

Boa tarde pessoal! Estou com a seguinte situação: tenho q atualizar uns ids com o where em um número de requisição, mas são entre dois bancos, firibirds, diferentes. Estou fazendo assim :

While not qry1.eof do Begin Qry2.sql.text := ‘ update tabela set id = qry1.fieldbyname(‘id’).asstring where numero = qry1.fieldbyname(‘numero’).asstring ‘ ;

Qry2.execsql;

Qry1.next;

End;

Isso dá certo(escrevi um pouco diferente aqui pra não escrever muito)

Mas dessa forma demora mais do que eu gostaria.

Alguém tem alguma ideia de como melhorar isso?

Desde já obrigado pela atenção!