我知道 NHibernate 不打算进行批量插入,因为它比 SqlBulkCopy 慢 5 倍,但我决定使用它来简化代码。
但是,我的代码并没有慢 5 倍。它慢了 2400 倍。我正在插入大约 2500 条记录。我已经关闭了 log4net 日志记录。我在发布模式下运行它。我没有使用 id 生成器(我通过整数计数器在代码中指定它)。我正在使用无状态会话。我将批量大小设置为 100(我可以做得更多,但似乎没有帮助)。我尝试重新添加生成器,但将其类设置为“已分配”。
我没有插入任何子元素。我已经确认批量插入正在发生。
它还在调用 SELECT SCOPE_IDENTITY() 吗?但即使是这样,这仍然是一个荒谬的时间。
我没有做太多的批处理操作,所以我可以继续使用 SqlBulkCopy 进行这个过程,但我担心我的整个应用程序可能运行得更快。
我没有 NHProf 的许可证,但我想知道现在是否可以下载试用版。
我将 NHibernate 3.3 GA 与 Syscache2 一起使用——但同样,我使用的是无状态会话。
您想查看任何 HBM、配置或代码吗?建议?
谢谢