質問: 私たちは、ショッピングカートのデータベースがうまく設計されていません。フロントサイトで使用されるすべての処理済みオブジェクトは、 `Application_Start` HttpContext.Current.Cacheに格納され`Application_Start` 。処理されたオブジェクト私は、多くの結合と条件があるSQLスクリプトの結果を意味します。 キャッシュを削除する、または現在のキャッシュ処理を改善する最適なソリューションを探してください。私は処理されたオブジェクトをSQL Serverテーブルに格納することを考えています。これは毎晩深夜に再投入されます。 Dapper ORMを使用して、このSQL Serverテーブルからデータを取得し、出力キャッシングを実装します。 誰かがこの問題の高速で維持可能な解決策を共有したいと考えています。 :) ありがとう!
回答: あなたが記述しているのは、実際には、データを第2の(技術的に冗長な)モデルに複製することです。そうであれば、確かにそれを楽しんでください - それはまれではありません。しかし、すべてのことをする前に、 インデックス付きのビューを試してみるとよいでしょう。これは、すべてのメンテナンスコードを記述する必要なく、ほとんどすべてを解決することができます。 ただし、「キャッシュを削除する」ことはお勧めしませんが、単に「キャッシュをある時点で期限切れにする」ことをお勧めします。重要な違いがあります。 1回のリクエストごとに同じデータをデータベースに書き込むことは良い考えではありません。