NHibernate批量插入或更新

嗨,我正在开发一个项目,我们需要每天处理几个xml文件,并使用这些文件中包含的信息填充数据库。

每个文件大约1Mb,包含大约1000条记录; 我们通常需要处理12到25个这些文件。 我已经看到有关使用NHibernate的批量插入的一些信息,但我们的问题有点棘手,因为xml文件包含与更新记录混合的新记录。

在xml中有一个标志,告诉我们特定记录是新记录还是对现有记录的更新,但不是更改了哪些信息。 xml记录不包含我们的数据库标识符,但我们可以使用xml记录中的标识符来唯一地定位数据库中的记录。

到目前为止,我们的策略是识别当前记录是插入还是更新,并且基于我们在数据库上执行插入或者我们进行搜索,然后我们使用来自的信息来更新对象的信息。 xml记录,最后我们对DB进行更新。

我们当前的方法存在的问题是我们遇到了DB锁的问题,而且我们的性能下降得非常快。 我们已经考虑了一些替代方案,比如为不同的操作设置单独的表,或者甚至是单独的DB,但是做出这样的举动意味着要做出很大的努力,所以在我想要就这个问题征求社群意见的任何决定之前,先谢谢。

这可能会有所帮助: http : //ideas-net.blogspot.com/2009/03/nhibernate-update-performance-issue.html