いいえ、私の2番目の質問に対する答えは冬ではありません。
序文:
私は最近EntityFrameworkについて多くの調査を行っていますが、クエリがウォームアップされていないときのパフォーマンス、いわゆるコールドクエリが気になります。
EntityFramework5.0のパフォーマンスに関する考慮事項の記事を読みました。著者は、ウォームクエリとコールドクエリの概念とそれらの違いを紹介しました。私もそれらの存在を知らずに気づきました。ここで言及する価値があると思いますが、私は6か月しか経験がありません。
これで、パフォーマンスの観点からフレームワークをよりよく理解したい場合に、さらに調査できるトピックがわかりました。残念ながら、インターネット上のほとんどの情報は古くなっているか、主観的に肥大化しているため、ウォームクエリとコールドクエリのトピックに関する追加情報を見つけることができません。
基本的に、これまでに気付いたのは、再コンパイルする必要があるとき、またはヒットをリサイクルするときはいつでも、最初のクエリが非常に遅くなっていることです。予想どおり、後続のデータ読み取りは高速(主観的)です。
Windows Server 2012、IIS8、およびSQL Server 2012に移行します。ジュニアとして、私は実際に、残りの前にそれらをテストする機会を獲得しました。彼らがウォーミングアップモジュールを導入してくれて、私のアプリケーションがその最初のリクエストに対応できるようになることをとてもうれしく思います。ただし、EntityFrameworkのウォーミングアップを続行する方法がわかりません。
私がすでに知っていることはやる価値があります:
- 提案されているように、事前にビューを生成します。
- 最終的に、モデルを別のアセンブリに移動します。
私が考えていることは、常識に従って、おそらく間違ったアプローチです:
- ウォームアップ、モデルの生成、検証を行うために、アプリケーションの開始時にダミーデータの読み取りを実行します。
質問:
- Entity Frameworkでいつでも高可用性を実現するための最良のアプローチは何でしょうか?
- どのような場合に、Entity Frameworkは再び「コールド」になりますか?(再コンパイル、リサイクル、IISの再起動など)