[firebase-br] Update de 1M Registros

Frederico Godoi via lista <[email protected]> Tue, 12 Aug 2025 20:01:47 -0300
Newsgroups gmane.comp.db.firebase.portuguese
Message-ID <CACWGdpP8srBKAyzeRcvmhAPqLwKiVNNZjDR1geLLG_nLRESMbA@mail.gmail.com>
Amigos estou com um desafio onde estou tentando ganhar performance em uma
importa=E7=E3o muito grande. 1,5 milh=E3o de registros. Esse =E9 um arquivo=
 di=E1rio
que precisa ser sincronizado :
  - n=E3o existe o registro, insert;
  - j=E1 existe o registro, update marcando que veio.
  - registros n=E3o enviados , update mudando status.

A maneira mais r=E1pida at=E9 agora para sincronizar isso no banco at=E9 ag=
ora,
foi fazendo um pump para uma tabela tempor=E1ria. fa=E7o isso com execute b=
lock
muito rapidamente.

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

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

Se eu fizer um update direto , eu fa=E7o provoco um Lock Conflict na base
toda e estou com usu=E1rios concorrendo , n=E3o posso fazer uma transa=E7=
=E3o =FAnica.

Se eu fa=E7o update , usando ROWS , est=E1 demorando um pouco
Se eu fa=E7o update , fazendo select first x skip y , vai degradando muito a
cada select.

Algu=E9m j=E1 passou por algo parecido ?

--
Frederico Godoi
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use: http://www.fi=
rebase.com.br/fb/artigo.php?id=3D1107
Para consultar mensagens antigas: http://www.firebase.com.br/pesquisa_lista=
.html