2009-07-17 12 views
1

私が働いているwebserviceは、約66980行のXMLに相当する結果セットを返送します.netはこれをリストオブジェクトとして返します。データの大きなセットを格納する最速の方法(C#ASP.net)

ユーザーの旅程では、ページを後退させる場合にこのセットをリロードする必要があるため、すべての作業を遅らせずにユーザーごとにこの結果セットを保存する最速/最善の方法があります。

のTa

- 多くのソリューション: http://msdn.microsoft.com/en-us/magazine/cc300437.aspx

答えて

1

私はキャッシュクエリの一般的な方法としてのmemcacheを使用します。最良のことは、ノード全体で機能するということです(ウェブサーバーがもっとある場合)。

+0

HttpContext.Current.Cache上でmemcacheを使用することや、セッションと言っても意味がありません –

+0

memcacheは複数のノード(Webサーバー)から使用できます。このようにして、すべてのWebサーバーはすべての(既知の)回答を再度計算していません。 – Toad

+0

ありがとうございます。私たちはこのプロジェクト用に1台のサーバーしか持っておらず、結果セットは13000(ish)個のレコードから無作為に抽出され、500個が返され、ユーザーごとのキャッシュに制限する必要があります。 –

1

"MyXml_UserId"のようなユーザIDをキーとしてHttpContext.Current.Cacheに保存します。

+0

HttpContext.Current.Cacheをmemcacheに使用することや、セッションを –

+0

と呼ぶことに利点がありますか?ホスティングアーキテクチャーによって異なります。私はそれが唯一のページサーバーに限定されているので、セッションを回避したいと思います(dbに保存しない限り)。あなたが1つだけのホストであれば、セッションはおそらく大丈夫でしょう。私はmemcacheについて知らない。 – NikolaiDante

+0

セッションは、SQL Serverまたは別の状態サーバーに自動的にバックアップできます。 –

0

ここでは、ウェブサービスに固有の問題ではないことに留意します。データベースからそのリストを簡単に取得できたとしても、データベースに再度アクセスする必要がないように、キャッシュする必要があります。

+0

本当に、私は過度に冗長になると思いました。 –

+0

いいえ、新しいタイトルは問題ありません。 –

関連する問題