Hola, estoy trabajando en un proyecto en el que necesitamos procesar varios archivos xml una vez al día y completar una base de datos con la información contenida en esos archivos.Inserción o actualización masiva de NHibernate
Cada archivo tiene aproximadamente 1Mb y contiene aproximadamente 1000 registros; usualmente necesitamos procesar entre 12 y 25 de estos archivos. He visto información sobre inserciones masivas usando NHibernate, pero nuestro problema es de alguna manera más complicado ya que los archivos xml contienen nuevos registros mezclados con registros actualizados.
En el xml hay un indicador que nos dice que un registro específico es uno nuevo o una actualización de un registro existente, pero no la información que ha cambiado. Los registros xml no contienen nuestro identificador de base de datos, pero podemos usar un identificador del registro xml para ubicar de manera única un registro en nuestro banco de datos.
Nuestra estrategia hasta ahora ha sido identificar si el registro actual es un inserto o una actualización y en base a eso, o bien realizamos una inserción en el DB o hacemos una búsqueda, luego actualizamos la información del objeto con el información proveniente del registro xml y finalmente hacemos una actualización en el DB.
El problema con nuestro enfoque actual es que estamos teniendo problemas con los bloqueos de DB y nuestro rendimiento se degrada muy rápido. Hemos pensado en algunas alternativas, como tener tablas separadas para las distintas operaciones o incluso DB separadas, pero realizar tal movimiento supondría un gran esfuerzo, así que antes de cualquier decisión que desee solicitar a la opinión de la comunidad sobre este asunto, gracias de antemano.