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