AppFabricキャッシュについての多くのドキュメントを読みましたが、そのほとんどは単純なシナリオをカバーしています。 たとえば、都市リストデータまたはショッピングカードデータをキャッシュに追加します。 しかし、製品カタログデータをキャッシュに追加する必要があります。AppFabricキャッシュを使用したページング、リスティング、およびグループ化
I 4つのテーブルを有する:Iがページング検索結果が照会表示
製品(1万行)、ProductProperty(25万行)、施設(100行)、PropertyOption(300行)
- をProductおよびProductPropertyテーブル用のフィルタがいくつかあります。
- 検索結果セットに条件を設定しています。たとえば、(4 Items New Product、34 Items Phone、26 Items Bookなど)
- ProductテーブルをIsNew、CategoryId、PriceTypeなどの列でグループ化するクエリを作成します。
ProductPropertyテーブルをグループ化するための別のクエリPropertyIdとPropertyOptionId列は、したがって、私は(カウント付き)基準リストを作成するための1つの検索結果のためのクエリと2を行い、検索結果を表示するために検索結果のクエリは0を取ったどのように多くの項目
持っているプロパティを取得します7秒間と2回のグループ化クエリーの合計は1,5秒でした。 負荷テストを実行すると、1秒あたり7リクエストに達し、%dbはレスポンスを返せないためIISによって低下しました。
これは、商品とプロパティのレコードをキャッシュする理由です。
以下の項目(AppFabricの場合)に従うと、
- データとグループ化を照会するためのアイテムをタグ付け
- 製品カタログデータ(25万行を持っている100万行とプロパティテーブルを持っているテーブル)領域を作成名前付きキャッシュ
- を作成します。
いくつかのタグを使用してクエリを実行し、結果の第1ページまたは第2ページを取得できますか? いくつかのタグを使用してクエリを実行し、いくつかのグループ化結果の数を取得できますか。 (カウントでフィルタオプションを表示) 3台のサーバが必要ですか?私は唯一のappfabricサーバーを持つソリューションを提供できますか(もちろん私はリスクを知っています)。 これらのシナリオを説明している記事やドキュメントがありますか?
ありがとうございました。
注:
いくつかの追加のテスト: 私はキャッシュにおよそ30.000の項目を追加し、そのサイズは900メガバイトです。 getObjectsInRegionメソッドを実行すると、約2分かかりました。 "IList> dataList = this.DataCache.GetObjectsInRegion(region).ToList();" 問題はIListに変換されています。私はIEnumerableを使用する場合、それは非常にquicly動作します。しかし、私のタイプに変換せずに、ページングやグループ化の結果を得るにはどうすればいいですか?
別のテスト:
私は30で、カウントをグループ化取得しようとしました。000製品アイテムとグループ化の結果を得るのに4秒かかりました。たとえば、GetObjectByTag( "IsNew")。Count()などの50近くのクエリ。
あなたはいくつかの素晴らしい追加情報を追加しました:-)私はこれに答えを書いていますが、私はまだそれを行うための強固な方法を考えています! – PhilPursglove
@PhilPursglove、私はこの問題の解決策としてSolrを使用するつもりだと思います。そして、非常に高価なアプリケーションであるMsのFast以外の.netの世界には方法がありません。残念だ ! – mehmetilker
Solr @jandarkはどういう意味ですか?あなたの答えには –