收集的NHibernate二级缓存很慢

时间:2015-06-09 20:04:00

标签: performance caching nhibernate

我想将参考数据存储在二级缓存中。我发现对于返回单个实体的查询,这确实更快,但是当查询返回一个集合时,缓存比访问数据库慢得多。

我知道NHibernate在从缓存中抓取它们时会从键/值对中组装实体做很多工作,但我仍然对它的速度有多慢感到惊讶。

让我们说我的用例是填充所有可用语言的下拉列表,似乎NHibernate缓存对此没有任何帮助。这是典型的吗?有人做过类似的事情,结果比我好吗?

作为比较,直接在NCache中存储这样的集合比NHibernate缓存(使用NCache)提供的速度快大约400倍。

从NHProf中提取;

  

- 声明#1   二级缓存加载语言(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 声明#2   二级缓存集合加载Language.CurrentLocalizations(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 陈述#3   二级缓存加载LanguageLocalization(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 声明#4   二级缓存加载语言(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 声明#5   二级缓存集合加载Language.CurrentLocalizations(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 声明#6   二级缓存加载LanguageLocalization(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

     

- 声明#7   二级缓存加载语言(Hrware.Foundation.Infrastructure.Persistence.Temporal.TemporalIdentifier / * id * /)

...

等等

0 个答案:

没有答案
相关问题