如何查询缓存的工作以及如何进行改善NHibernate的表现?

有帮助吗?

解决方案

当一个查询被缓存,NHibernate的将缓存从查询得到的实体的ID。

非常重要的是,它不缓存的实体本身 - 只是它们的ID。这意味着你几乎可以肯定希望确保这些实体也被设置在你的二级缓存缓存的。否则,NHiberate将获得从查询缓存的实体的标识,但随后被强迫去到数据库中获得实际的实体。这可能是比刚准备数据库首先更昂贵!

同样重要的:基于它们的确切SQL和参数值的查询被缓存。在任那些任何差异将意味着数据库将受到打击。所以,你可能只需要缓存那些有一点变化在它们的输入查询。

其他提示

当您启用缓存NHibernate的将存储查询里面的某处结果,当你执行查询。当你尝试用相同的参数执行查询再次将得到的结果从缓存中,而不是数据库,当然它的速度要快得多!但要注意的其他应用程序可以在后台修改数据库!但是的nHibernate可以更新高速缓存。

通过使用它的nHibernate不需要访问数据存储它访问什么在高速缓存中。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top