2010-02-26 95 views
0

我應該考慮使用ASP.NET緩存來緩存NHibernate二級緩存頂部的查詢結果以提高性能嗎?在NHibernate二級緩存之上使用ASP.NET緩存

+0

如果我們不知道緩存的原因和緩存方式,我們如何才能給您提供有關緩存的建議?無論如何,緩存緩存可能會減慢速度。 – Paco 2010-02-26 19:47:18

回答

0

我認爲這足夠NHibernate二級緩存。通過使用asp.net緩存來緩存相同的查詢結果,不需要額外的開銷。但是,如果您需要最佳性能,則可以使用IIS Kernel cache (native output cache)來緩存呈現的頁面和控件。此外,我建議您使用NHibernate Profiler來分析您的應用程序。它會顯示緩存未命中以及有關您的查詢的很多有用信息,並提供一些很好的建議。

編輯:
NHibernate.SysCache2使用ASP.NET緩存,這是一個有點慢,因爲它支持SQL基於依賴關係的到期,這意味着它可以配置一定的緩存區域自動失效時,在相關數據數據庫更改。
你也可以嘗試緩存你的ViewModels。但是如果你可以緩存它們,那麼你也可以緩存生成的視圖,這更好更快。本文可能對您有所幫助 - http://haacked.com/archive/2009/05/12/donut-hole-caching.aspx

+0

@zihotki:是的,但似乎(基於我自己的測試)NH二級緩存(SysCache2)比使用簡單鍵/值緩存項目的傳統ASP.NET緩存要慢得多...... – 2010-02-26 16:30:40