【问题标题】:Using ASP.NET Caching on top of NHibernate 2nd Level Caching在 NHibernate 二级缓存之上使用 ASP.NET 缓存
【发布时间】:2011-01-21 12:05:25
【问题描述】:

我是否应该考虑在 NHibernate 2nd Level Caching 之上使用 ASP.NET Caching 来缓存查询结果以提高性能?

【问题讨论】:

  • 如果我们不知道为什么要缓存以及缓存什么,我们如何为您提供有关缓存的建议?无论如何,缓存缓存可能会减慢速度。

标签: asp.net-mvc nhibernate caching second-level-cache


【解决方案1】:

我认为 NHibernate 二级缓存已经足够了。通过使用 asp.net 缓存来缓存相同的查询结果,不需要额外的开销。但是,如果您需要终极性能,您可以使用IIS Kernel cache (native output cache) 缓存您呈现的页面和控件。我还建议您使用NHibernate Profiler 来分析您的应用程序。它会显示缓存未命中和很多关于您的查询的有用信息以及一些好的建议。

编辑:
NHibernate.SysCache2 使用 ASP.NET 缓存,速度稍慢,因为它支持基于 SQL 依赖的过期,这意味着可以将某些缓存区域配置为在数据库中相关数据发生变化时自动过期。
您也可以尝试缓存您的 ViewModel。但是,如果您可以缓存它们,那么您也可以缓存生成的视图,这会更好更快。这篇文章可能对你有帮助 - http://haacked.com/archive/2009/05/12/donut-hole-caching.aspx

【讨论】:

  • @zihotki :是的,但似乎(根据我自己的测试)NH 2 级缓存(SysCache2)比使用简单键/值缓存项的经典 ASP.NET 缓存慢得多......
猜你喜欢
  • 1970-01-01
  • 2011-09-02
  • 2011-03-21
  • 2011-10-18
  • 1970-01-01
  • 1970-01-01
  • 2013-12-20
  • 2011-05-08
  • 2011-10-26
相关资源
最近更新 更多