1

我在我的ASP.Net 3.5 web應用程序中使用L2S存儲庫模式。但我對現場的表現並不滿意。我搜索谷歌和碰到SQL緩存使用SqlCacheDependency類。但我還沒有任何教程或鏈接,將解釋如何在我的方案中使用它。使用LINQ2SQL(存儲庫模式)的SqlCacheDependency

所以幫助我們...任何幫助或指導將高度讚賞。

請使用一些示例代碼或在線參考....

由於提前

更新: 我的倉庫

public interface IRepository<T> where T : class 
{ 
    T GetById(int id); 
    IQueryable<T> GetAll(); 
    void SaveOrUpdate(T entity); 
    void DeleteOnSubmit(T entity); 
} 
+1

你有看過http://code.google.com/p/linqtocache/ –

+0

謝謝,我已經下載並調查它... –

回答

1

有時LINQ到SQL使得在查詢意外的方式你有沒有檢查你的linq查詢是如何轉換成sql的?使用Sql Server Profiler(可在SQL管理服務器的工具菜單上找到)來檢查生成的查詢。我寫了一些關於它的信息here

一旦你知道你已經生成了好的查詢,你應該看看它們中任何一個的執行是否是性能瓶頸。分析器也可以在這裏幫助。如果某些查詢運行緩慢,請嘗試添加適當的索引。

除非您的網站數量很大,否則這些步驟無需進行緩存即可爲您提供良好的性能。

0

你沒有描述你如何使用linq到你的倉庫的sql。基本上,你是否重複使用同一個DataContext在單個請求期間創建的所有存儲庫,還是每個存儲庫都獲得它自己的DataContext實例?如果它是後者,你就會失去DataContext的內部可用性。

可以提高性能的另一個領域是如果您有任何經常使用的包含大量連接層的查詢(而不僅僅是單個表選擇)。在這裏使用CompiledQuery將大大加快速度。 CompiledQueries只能在第一次使用時生成,否則每次使用時都會重新編譯查詢。