我知道NHibernate並不是要做批量插入,因爲它比SqlBulkCopy慢5倍,但我決定使用它來代碼簡單。如何診斷緩慢的NHibernate插入?
但是,我的代碼沒有慢5倍。這是2400倍慢。我插入了大約2500條記錄。我關閉了log4net日誌記錄。我在發佈模式下運行它。我沒有使用id生成器(我通過一個整數計數器在代碼中指定它)。我正在使用無狀態會話。我已經設置了100的批處理大小(我可以走得更遠,但似乎沒有幫助)。我嘗試添加發生器,但將其類設置爲「已分配」。
我沒有插入任何子元素。我已經確認批量插入正在發生。
它仍在調用SELECT SCOPE_IDENTITY()嗎?但即使如此,這仍然是一個荒謬的時間。
我不會做太多的批量操作,所以我可以繼續使用SqlBulkCopy來處理這個過程,但是我擔心我的整個應用程序可能運行得更快。
我沒有NHProf的許可證,但我想知道現在是否可以下載試用版了。
我使用NHibernate 3.3 GA與Syscache2 - 但我再次使用無狀態會話。
您想查看的任何HBM,配置或代碼?建議?
感謝
插入2500個物體需要多長時間? – ivowiblo
另外,您能否提供插入2500個對象和映射的代碼? – ivowiblo
你有任何IUsertypes? – Firo