我知道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