0

我使用使用 NHibernate 3.3.2.4000 的 Fluent NHibernate 1.3.0.733。当我使用session.BeginTransaction()时,创建一个事务大约需要 500 毫秒,有时它也会超过一秒。有什么办法可以减少这个时间吗?


这是在带有 MS SQL Server 的 ASP.NET 应用程序中。会话是使用在应用程序启动时创建的 SessionFactory 创建的。我使用 ASP.NET 模块实现了每请求会话模式。一切都很好。会话创建不需要时间,但事务创建很慢。

4

1 回答 1

2

对于简单的查询和更新,一个完整的请求可能会在 10-20 毫秒内执行,包括开始和提交事务的时间,所以在这种情况下显然有些问题。

在默认配置下,BeginTransaction() 是 NHibernate 尝试从底层 ADO.NET 获取连接的时间。连接池是否禁用?您对 sql server 有很高的网络延迟吗?是否涉及分布式事务协调器?

如果您使用相同的连接字符串直接打开 ADO.NET 连接和事务会发生什么情况?

于 2013-01-24T20:12:09.537 回答