[firebase-br] Update de 1M Registros

Frederico Godoi frederico.godoi em gmail.com
Terça Agosto 12 20:01:47 -03 2025


Amigos estou com um desafio onde estou tentando ganhar performance em uma
importação muito grande. 1,5 milhão de registros. Esse é um arquivo diário
que precisa ser sincronizado :
  - não existe o registro, insert;
  - já existe o registro, update marcando que veio.
  - registros não enviados , update mudando status.

A maneira mais rápida até agora para sincronizar isso no banco até agora,
foi fazendo um pump para uma tabela temporária. faço isso com execute block
muito rapidamente.

agora para sincronizar:
Faço select from tmp where not exists ( select from tabela persistente )
onde pego os novos.

Desafio:
Todos os 1,5 milhão de registros coincidentes preciso marcar que vieram no
arquivo. AQUI pesa.

Se eu fizer um update direto , eu faço provoco um Lock Conflict na base
toda e estou com usuários concorrendo , não posso fazer uma transação única.

Se eu faço update , usando ROWS , está demorando um pouco
Se eu faço update , fazendo select first x skip y , vai degradando muito a
cada select.

Alguém já passou por algo parecido ?

--
Frederico Godoi


Mais detalhes sobre a lista de discussão lista