这是使用 Fluent NHibernate 完成的
我有一个 NHibernate 查找,它正在从一个表中检索数据。如果我使用生成的 sql 并通过查询分析器运行它,则运行大约需要 18 毫秒。
使用 NHProfiler,我得到这个查询的持续时间为 ~1800 毫秒 - 比 sql 长 100 倍!
Query duration
- Database only:1800ms
- Total: 1806ms
正在填充的对象包含一个子类,但是这个子类是从 NHibernate 二级缓存加载的
返回的数据是分页的(每个查询 50 个),但据我所知,这应该没有任何区别
我还运行了一个计数,根据 NHProfiler,这在查询分析器中需要约 4 毫秒,而根据 NHProfiler,这需要约 1800 毫秒。
NH Profiler 是显示查询执行时间,还是检索、映射类和构建对象图的完整时间?如果是前者 - 为什么它比直接运行查询要花这么长时间?
编辑:刚刚发现 Ayende 关于 NH Profiler 中给出的查询持续时间值的帖子:http: //ayende.com/Blog/archive/2009/06/28/nh-prof-query-duration.aspx - 所以肯定是查询耗时较长的数据库