嗨我正在一個項目,我們需要每天處理幾個xml文件,並使用這些文件中包含的信息填充數據庫。NHibernate批量插入或更新
每個文件大約爲1Mb,包含大約1000條記錄;我們通常需要處理這些文件中的12到25個。我已經看到關於使用NHibernate批量插入的一些信息,但是我們的問題在某種程度上更復雜,因爲xml文件包含與更新記錄混合的新記錄。
在xml中有一個標誌,告訴我們是一個特定的記錄是一個新的還是現有記錄的更新,但不是什麼信息發生了變化。 xml記錄不包含我們的數據庫標識符,但我們可以使用xml記錄中的標識符來唯一地定位我們數據庫中的記錄。
到目前爲止,我們的策略是確定當前記錄是插入還是更新,並基於該插入對數據庫執行插入或我們執行搜索,然後使用來自xml記錄的信息,最後我們會對數據庫進行更新。
我們目前的方法存在的問題是,我們遇到了數據庫鎖的問題,而且我們的性能降低得非常快。我們已經考慮過一些替代方案,比如爲不同的業務分開表格,甚至分開數據庫,但做這樣的舉動意味着需要付出很大的努力,所以在做出任何決定之前,我要先徵求社羣的意見。