NHibernate bulk insert ou update

Salut, je travaille sur un projet où nous avons besoin pour traiter plusieurs fichiers xml une fois par jour et de remplir une Base de données avec les informations contenues dans ces fichiers.

Chaque fichier est d'environ 1 mo et contient environ 1000 dossiers; nous avons généralement besoin de processus entre 12 et 25 de ces fichiers. J'ai vu quelques informations concernant les insertions en bloc à l'aide de NHibernate, mais notre problème est en quelque sorte un peu plus compliquée car les fichiers xml contiennent de nouveaux records mélangé avec des enregistrements mis à jour.

Dans le xml, il est un indicateur qui nous dit, c'est un enregistrement spécifique est une nouvelle ou mise à jour d'un enregistrement existant, mais pas ce que l'information a changé. Les enregistrements xml ne contient pas de notre DB identifiant, mais nous pouvons utiliser un identifiant à partir du xml enregistrement de manière unique localiser un enregistrement dans notre base de données.

Notre stratégie a été de déterminer si l'enregistrement en cours est une insertion ou une mise à jour et fondées sur que l'on soit effectuer une insertion sur la DB ou nous faire un recherche, nous mettre à jour les informations sur l'objet avec les informations provenant de l'xml enregistrement et, enfin, nous faisons une mise à jour de la DB.

Le problème avec notre approche actuelle est que nous sommes d'avoir des problèmes avec la DB de serrures et de nos performances se dégradent très vite. Nous avons pensé à quelques solutions de rechange comme avoir des tables séparées pour les différentes opérations ou même séparé de la DB, mais faire une telle démarche serait un gros effort donc, avant toute décision, je voudrais demander à la communauté de l'opinion sur cette question, merci d'avance.

OriginalL'auteur Pedro Santos | 2009-02-18