2010-09-01 3 views
2

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

Répondre

0

Y at-il une clé que vous pouvez utiliser pour identifier un dossier?

Sinon, vous ne pouvez trouver que ceux qui sont identiques. Ensuite, vous devrez supprimer tous les enregistrements existants qui ne correspondent pas dans la nouvelle version et ajouter tous ceux qui ne correspondent pas à un enregistrement dans la version existante.

Avoir une clé rendrait les choses plus faciles.

+0

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é. –

Questions connexes