【发布时间】:2012-02-08 19:42:55
【问题描述】:
我正在处理集合水合期间的 nHibernate 性能问题。 nHibernate 生成的查询在 1-3 秒内完成,但仅 50-90 个对象的水合需要另外 7-9 秒。从一个结果集中合并了多层连接的对象,并且数据不会重叠太多以从缓存中受益。取出 nHibernate 是不可能的,我只是想弄清楚如何更快地补水。
我研究的一个想法是拆分 nHibernate 代码以使用命名查询并控制不同层中的对象如何被水合。我还找到了 nHibernate 的 use_reflection_optimizer 参数。虽然看起来很棒,但几乎没有任何关于使用的信息。
1) 默认情况下是否启用反射优化器?我使用的是.NET 4.0,所以似乎应该默认开启,但我找不到明确的答案。
2) 如果 use_reflection_optimizer 默认不是“true”,那么我该如何启用它?它通过 web.config 对我不起作用,我正在阅读它应该通过代码或通过配置中的部分来完成。有人可以举个例子吗?
3) 是否有任何其他建议可以加快我的对象的水合作用?
【问题讨论】:
-
您尝试过无状态会话吗?也就是说,如果这些数据可以被视为只读
标签: nhibernate