[firebase-br] Dúvida em performance de consulta

Thiago thiagortk em rtkomp.com.br
Qui Set 27 15:52:39 -03 2012


Boa tarde a todos,

 

Iremos criar uma rotina batch em nosso sistema onde os dados de dois ou três
bancos serão migrados para um único banco. Não queremos no momento utilizar
ferramentas de replicação, pois durante a transferência algumas regras de
negócio serão aplicadas. A transferência será feita 1x ao dia, pensei em
duas formas de fazer. A primeira (Numero 1) seria pesquisar os registros
inseridos no dia anterior e transferir para o banco de destino, eu faria
sempre um SQL na data de inserção, porém se por alguma falha não rodar a
rotina teríamos que intervir manualmente pois perderíamos 1 dia de
transferência. A segunda opção (Número 2) seria criar um campos status de
transferência dentro das tabela necessárias e após a transferência maçaremos
com o valor 1, sendo assim meu SQL seria nesse campos buscando por todos os
registros com status=0 (de não transferido), assim eu não teria problemas se
perdesse 1 dia de transferência como na situação Numero 1, porém meu SQL
sempre afetaria todos os registros da tabela acredito.

 

Minha dúvida é qual seria a melhor forma a mais rápida e menos custosa para
o banco, fazer a pesquisa por data, sendo somente um dia, ou pelo status que
terá o mesmo valor 1 repetido no campo status em toda a tabela. Eu acredito
que seria melhor por data, pois pelo status ao longo do tempo sempre teremos
pelo menos 95% da tabela com o campos status=1, acredito que essa pesquisa
seria mais custosa. Mas não tenho 100% de certeza da minha teoria, preciso
da ajude de vocês.

 

Grato.

 

Abraços.




Mais detalhes sobre a lista de discussão lista