2011-01-30 13 views
0

私はSOコミュニティの意見を聞き、これを推奨することに非常に関心があります。セッションでの保存とデータベースからの取得

私は現在、ユーザがショートフォームを記入するたびに、(約100行(10プロパティ)のクラス)のセットを検証するASP MVCアプリケーションを持っています。アプリケーションには約10のフォームがあり、アプリケーションでは3人を超える同時ユーザーはほとんどありません。

現在のところ、最初に読み込まれたセッション変数にすべてのルールが格納されており、フォーム全体で永続化されています。メモリに保存するのはあまりにも悪いことでしょうか?私はアプリケーションを高速化するためにこれを行いました。負荷はかなり速く(1秒未満)、フォームごとに必要なだけロードすることを議論しています。

したがって、各フォームの検証時に、(セッション変数)のルールテーブルを保持するか、またはをロードしますか?

+0

ユーザーがこれらのフォームにアクセスする頻度はどれくらいですか?フォームごとに1分以上かかる場合、オンデマンドでの負荷はすでに正当なものです。 – xandy

+0

良い質問ですが、フォームの平均は1つのフォームにつき約5つの質問ですので、簡単にするために、それぞれのフォームは約5分のポストバックを待っています。 –

答えて

2

セッションでかなり多くを保存できることを意味アプリケーション

上の3つの以上の同時ユーザーはめったにあります。

あなたのアプローチはちょうど「拡大縮小」されません。そのため、一般的な知恵がそれに反論します。しかし、あなたの「3」が「300」または「3000」にならない限り、あなたは安全です。

+0

私はHenkと完全に同意しています。私はその使用を見ることができたと思います.10から20人の同時ユーザーになると、既に抽象化されているため、中断は全く悪くありません。 –

+0

私は、スケーラビリティ・ファクタを解決するために、可変アプリケーションを広くするためにキャッシュを考慮していると言及するのを忘れていましたが、ルールの変更はそれほど望ましくない再起動を必要とします。 –

+1

@Markキャッシュに保存する場合(.NET 4ではSystem.Web.CachingまたはSystem.Runtime.Caching.MemoryCache)、有効期限を設定するか、または他のオブジェクト(ファイルなど)を監視することができます変更。いずれにしても、アプリを再起動する必要はありません。コードがキャッシュを読み取り、エントリが見つからない場合はいつでも、キャッシュを再ロードするだけです。 – holmes

関連する問題