gpt4 book ai didi

nhibernate - 为什么NHibernate AutoFlush检查如此昂贵?

转载 作者:行者123 更新时间:2023-12-03 08:20:25 26 4
gpt4 key购买 nike

实际上,我们发现默认的NHibernate(v2.0&2.1)FlushMode = Auto非常昂贵。查阅NHibernate资料表明,用于确定需要清除哪些内容的算法依赖于遍历 session 中所有实体的蛮力,并且在事务中运行的每个查询都会发生这种情况。

在某些产品场景中,其中包含许多项目的更新,多个查询,与FlushMode = Commit相比,使用FlushMode = Auto可以看到该过程长100倍。

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

关于优化nHibernate中的AutoFlush算法有什么想法吗?

最佳答案

这种缓慢是一个已知问题,在NH中以NH-1365/GitHib Issue 857的形式进行跟踪

NH中有三种冲洗模式:

  • FlushMode.Auto =需要时刷新(在提交时和查询之前,如果需要)。这是默认值。
  • FlushMode.Commit =仅在提交NH事务时刷新
  • FlushMode.Never =从不刷新(直到调用Flush为止)。这将在使用 native (身份)PK生成器的实体插入时添加still go to DB
  • 关于nhibernate - 为什么NHibernate AutoFlush检查如此昂贵?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1726656/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com