gpt4 book ai didi

c# - NHibernate 只读 session 池?

转载 作者:行者123 更新时间:2023-11-30 21:09:00 25 4
gpt4 key购买 nike

为只读操作汇集 NHibernate session 是否有用?在系统进行大量读取而只有少量写入的情况下,创建一个 session 池是否有意义,这些 session 池可以重用以读取数据,并且仅在您明确必须提交更改时才打开一个新 session ?

就其值(value)而言,我的想法是,如果您在一分钟内收到 1000 个读取数据的请求。如果这些读取以毫秒为单位是短暂的,那么一个 session 池(比如 3 个)可能可以处理所有这些读取,而不必创建和处理 1000 个 session 。

最佳答案

你的想法适用于已经是pooled的数据库连接,你不需要做任何特别的事情,它是默认启用的。

NHibernate Session 不等于数据库连接。 Session 是 NHibernate 对 Unit of Work 的实现。图案。池化工作单元可能很危险,因为每个工作单元都保留它加载的所有对象(用于更改跟踪目的),因此它们不能被垃圾收集。即使您在将 UOW 返回到池之前清除它 - 也没有意义,因为创建 UOW/ISession 很便宜,它不会分配数据库连接。

看看这个answer如果您想使用 NHibernate 优化内存消耗。

关于c# - NHibernate 只读 session 池?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9280494/

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