La situation dans laquelle je suis confronté est la suivante:Différencier mise à jour des entrées (objets de logique métier)
Il y a un grand nombre de fichiers « plates » à partir de laquelle les données sont extraites par une application C# pour créer des entrées qui sont à leur tour écrits dans une base de données (serveur MS SQL). Une version complète de la base de données comprend ~ 97 millions d'entrées sur 220 Go.
La tâche consiste à créer une mise à jour différentielle des données dans la base de données en analysant une nouvelle version complète et en recherchant celles qui ont été mises à jour. Une entrée est considérée comme mise à jour si l'une de ses propriétés a été modifiée.
[MISE À JOUR] Chaque entrée a un identifiant unique.
Le problème est que le fournisseur de données ne fournit aucune indication de modification d'entrée (un numéro de version ou une date de dernière modification) - seulement des versions complètes.
La solution que j'ai trouvée jusqu'ici est de générer une somme de hachage pour chaque entrée, puis de comparer la nouvelle à l'ancienne.
L'autre aspect du problème qui rend indésirable les totaux de hachage est la combinaison entre la taille des données et le nombre d'entrées - c'est tout simplement stupéfiant.
Alors, y a-t-il une meilleure solution que celle-ci?
Toute aide concernant l'étui sera grandement appréciée!
Tous les meilleurs, Borislav
Oui, il y a un identifiant unique pour chaque entrée - J'ai mis à jour la question. La suppression d'une entrée purement pour la raison qu'elle existe est très bien en termes de performances, mais les entrées mises à jour doivent être trouvées et marquées comme telles - c'est ce qui m'a intrigué. –