NHibernate开始事务和提交没有语句需要超过4秒

时间:2014-12-24 13:18:39

标签: nhibernate transactions nhprof

我在我们的生产中运行Nh-Prof,发现即使没有状态/查询数据库,打开NHibernate会话,开始事务和提交的时间有时也需要4秒以上。

**我知道打开事务并且无理由地提交它(没有语句)是一个错误。

这就是我在Nh-Prof中所看到的:

begin transaction with isolation level: Unspecified
commit transaction

有什么建议吗?

1 个答案:

答案 0 :(得分:1)

最可能的原因:

使用的会话是"完整"对象和提交它检查每个对象是否已更改以生成更新语句。即使没有任何改变,支票也很昂贵。

您可以查看session.GetSessionImplementation().PersistenceContext.EntitiesByKey.Count以查看有多少个对象。

你能做些什么:

  • 请勿使用此会话加载只读数据(例如填充只读网格)
  • 使用session.Evict一路上你不再需要的对象进行交易并且没有改变