将\u反射\u优化器与nHibernate一起使用

将\u反射\u优化器与nHibernate一起使用,nhibernate,Nhibernate,我正在处理一个系列水化过程中的nHibernate性能问题。nHibernate生成的查询在1-3秒内完成,但对于50-90个对象,水合作用还需要7-9秒。一个resultset中有多个连接的对象层,数据不会有太多重叠以从缓存中获益。除去nHibernate是不可能的,我只是想知道如何加快水合作用 我研究的一个想法是拆分nHibernate代码以使用命名查询并控制不同层中对象的水合方式。我还找到了nHibernate的use\u reflection\u优化器参数。虽然它看起来很棒,但几乎没有关

我正在处理一个系列水化过程中的nHibernate性能问题。nHibernate生成的查询在1-3秒内完成,但对于50-90个对象,水合作用还需要7-9秒。一个resultset中有多个连接的对象层,数据不会有太多重叠以从缓存中获益。除去nHibernate是不可能的,我只是想知道如何加快水合作用

我研究的一个想法是拆分nHibernate代码以使用命名查询并控制不同层中对象的水合方式。我还找到了nHibernate的use\u reflection\u优化器参数。虽然它看起来很棒,但几乎没有关于使用的任何信息

1) 默认情况下是否启用反射优化器?我使用的是.NET4.0,所以它似乎应该默认打开,但我找不到一个明确的答案

2) 如果默认情况下use_reflection_optimizer不是“true”,那么如何启用它?通过web.config它对我不起作用,我读到它应该通过代码或通过config中的节来完成。有人能举个例子吗


3) 对于加快我的对象的水合作用还有其他建议吗?

使用反射\u优化器在默认情况下处于启用状态,它的作用是在启动时生成大量运行时需要的反射功能,而不是在第一次接触某些对象时。它使创业时间更长,但从长远来看更好

我认为即使没有反射优化器,NHibernate也会将命名的HQL查询转换为SQL


现在,关于该查询的性能,您可以分享一些代码吗?是否可以获取/加入帮助?

是否尝试了无状态会话?也就是说,如果可以将此数据视为只读数据