2012-01-12 8 views
0

パフォーマンスビューでキャッシングライブラリを使用する最良の方法は何ですか。私はキャッシュしたいdbテーブルに多くのデータを持っています。c#エンタープライズライブラリCacheManagerに関するキャッシュパフォーマンス

は私が名前の3つのテーブルを持っているとしましょう。

  1. AssignmentHead
  2. AssignmentRow
  3. アイテム

今日休閑としてテーブルを格納IAM:

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

私は1 CacheMangerを持っていると私はこのようなデータを格納します。

_manager.GetData("Heads"); 

はその後、私は頭のリストを取得し、私が欲しいものを照会するLINQを使用しています:ヘッドのようなデータを取得する際

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

iは、休閑を行います。しかし、これを行うにはこれが最善の方法ですか、それとも各テーブルに対して3つのCacheManagerを設定し、プライマリキーとオブジェクトを挿入する方が良いでしょうか。

_headManager.add("1",HeadObject); 

本当にあなたのアドバイスが必要です。助けてくれてありがとう。

+0

「.NET Frameworkアプリケーションでのキャッシュ」から開始できます。http://msdn.microsoft.com/en-us/library/dd997357.aspx –

+0

ありがとう、私はそれを読むでしょう。 – Tan

答えて

1

個人的にはすべてがほぼ等しいので、実行時に必要な形式でデータをキャッシュします。そうすれば、必要な情報を必要な表現で直接入手することができます。あなたの例では、主キーをキャッシュキーとして持つ複数のCacheManagersになります。

既にリストを返すメソッドがあり、リストをキャッシュしているようです。データがロードされるとリストを繰り返し処理し、すべての呼び出しでリストを反復するよりもキーでルックアップを実行します。あなたのリストが大きい場合、リスト内の要素がハッシュ衝突のないキャッシュのO(N)対O(1)であるため、リクエストごとにリストを検索する必要がある場合、パフォーマンスヒットが表示されることがあります。

もちろん、動的リストをサポートしたい場合は、動的CacheManagersの作成は少しの作業であるため、必要に応じてリストを1つのCacheManagerに追加することをお勧めします。

関連する問題