1.3.0.733,它使用NHibernate 3.3.2.4000。当我使用 session.BeginTransaction()
时,创建事务大约需要 500 毫秒有时它也超过一秒钟。有什么办法可以减少这个时间吗?
这是在带有MS SQL Server的 ASP.NET 应用程序中。会话是使用在应用程序启动时创建一次的会话工厂创建的。我使用 ASP.NET 模块实现了每个请求的会话模式。一切都很好。会话创建不需要时间,但事务创建速度很慢。
对于简单的查询和更新,可以在 10-20 毫秒内执行完整的请求,包括开始和提交事务的时间,因此在这种情况下显然有些可疑。
使用默认配置,BeginTransaction() 是 NHibernate 尝试从底层 ADO.NET 获取连接的时间。是否禁用了连接池?SQL 服务器的网络延迟是否很高?是否涉及分布式事务处理协调器?
如果使用相同的连接字符串直接打开 ADO.NET 连接和事务,会发生什么情况?