2012-01-12 41 views
0

在性能視圖中使用Caching庫的最佳方式是什麼?我的數據庫表中有很多數據需要緩存。c#企業庫CacheManager的緩存性能

可以說我有3個表名。

  1. AssignmentHead
  2. AssignmentRow
  3. 項目

今天IAM存儲表作爲法洛斯:

private CacheManager _manager = _manager = CacheFactory.GetCacheManager(); 

我有一個CacheManger和我店這樣的數據。

_manager.add("Heads",ListofAssignmentHeads); 
_manager.add("Rows",ListofAssigmmentRows); 
_manager.add("Items",ListOfItems); 

檢索像頭數據,當我做休耕:

_manager.GetData("Heads"); 

然後我得到的頭一個列表,並使用LINQ查詢我想要什麼。但是,這是做這件事的最好方式,還是爲每個表設置3個CacheManager並插入主鍵和對象最好。

_headManager.add("1",HeadObject); 

我真的需要你們對這些的建議。謝謝您的幫助。

+0

您可以從「.NET Framework應用程序中的緩存」開始http://msdn.microsoft.com/en-us/library/dd997357.aspx – 2012-01-12 11:10:34

+0

謝謝,我會閱讀它。 – Tan 2012-01-13 09:50:54

回答

1

就個人而言,所有的東西幾乎相等,我會緩存數據的格式,我將在運行時需要它。這樣您就可以直接在需要的表示中獲取所需的信息。在你的例子中,它將是多個CacheManagers,主鍵作爲緩存鍵。

它看起來像你已經有方法返回列表,你正在緩存列表。我寧願在數據加載時迭代列表,然後通過鍵執行查找,而不是在每次調用時迭代列表。如果您的列表很大,如果您必須爲每個請求搜索列表,則可能會看到性能下降,因爲查找列表中的元素對於沒有散列衝突的緩存爲O(N)對O(1)。

當然,如果您想要支持動態列表,那麼您可能更願意將列表根據需要添加到單個CacheManager中,因爲創建動態CacheManagers是一項工作。