私は自分の Web サイトの 1 つで SqlProfileProvider を使用していますが、1 つのページでプロファイルのリスト全体を取得する必要があります (これはイントラネットです)。
私が使用するメソッドは、ProfileManager.GetAllProfiles() です。問題は、そのパフォーマンスが非常に悪く、Web サイトの速度が大幅に低下することです。
したがって、メソッド呼び出しの結果を Application スコープで DataTable としてキャッシュすることを考えていました (そのため、フィルター処理や検索も可能です)。
私の問題は、この webapp を実行している複数のサーバーがあり、キャッシュを同期させたいということです。私は memcached を使い始めましたが、いくつかの問題に気が進まなかった (そのため、Application スコープでのキャッシングの考え方に戻りました)。
だから、ここに私の質問があります:
- プロファイルを含む DataTable を Application オブジェクトに格納すると効率的でしょうか? または、オブジェクトをキャッシュに保存して、すべてのクライアント/ブラウザで利用できるようにすることはできますか?
- このキャッシュに (SQL) キャッシュ依存関係を追加することは可能ですか?