ASP.NET MVC 5 で記述されたアプリケーションがあります。これにより、多くのデータベース トランザクションが生成されます。
レポート専用のサーバー スレーブがないため、エンティティ フレームワークで第 2 レベルのキャッシュを使用して、レポートによって生成されるすべてのクエリをキャッシュする必要があります。
ここでの考え方は、特に複数のユーザーが同じレポートを表示しようとしている場合に、データベースにアクセスする必要があるクエリの量を減らすことです。したがって、ダッシュボードを表示したい人が 5 人いる場合、1 人だけがデータベースにヒットし、残りはキャッシュに保存されたデータ セットを読み取ります。これにより、レポートのパフォーマンスが向上し、データベースのロックが減少し、アプリケーションのパフォーマンスが向上します。
クエリが一定時間実行された後にデータセットがキャッシュされるエンティティフレームワークでMemcachedまたはRedisを使用することは可能ですか? もちろん、クエリが実行される前に、サーバーでハードクエリが実行される前に、既存のデータセットについてキャッシュがチェックされます。
私はまさに私が達成しようとしているもののように思われるNCacheに出くわしましたが、残念ながら高価です。