首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么NHibernate AutoFlush check如此昂贵?

为什么NHibernate AutoFlush check如此昂贵?
EN

Stack Overflow用户
提问于 2009-11-13 09:59:14
回答 1查看 2.1K关注 0票数 9

在实践中,我们发现默认的NHibernate (v2.0和2.1) FlushMode=Auto非常昂贵。查看NHibernate源代码表明,用于确定需要刷新的内容的算法依赖于强制循环通过会话中的所有实体,并且在事务中运行的每个查询都会发生这种情况。

在一些生产场景中,有许多项目的更新,有多个查询,与FlushMode=Commit相比,我们已经看到使用FlushMode=Auto的过程要长100倍。

在执行涉及多个更新、多个查询等的“复杂”会话逻辑时,有关使用FlushMode的任何想法/建议/最佳实践。

对在nHibernate中优化AutoFlush算法有什么想法吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-17 01:25:44

这种速度缓慢是一个已知问题,在NH中被跟踪为NH-1365/GitHib Issue 857

在NH中有三种刷新模式:

  • FlushMode.Auto =在需要时刷新(在提交时和查询之前,如果需要)。这是NH事务提交时的default.
  • FlushMode.Commit = flush only
  • FlushMode.Never =从不刷新(直到调用flush )。这将在插入使用本机(身份) PK生成器的实体时still go to DB
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1726656

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档