0

私たちのアプリケーションは、エンティティ フレームワーク 5.0 に基づくコード ファースト データベースを使用します。モデルには約 100 のタイプが含まれており、それらは合計で数千のレコードを持つ約 70 のテーブルにマップされます。アプリケーションの起動時にほとんどのデータをロードする必要があります。この目的のために、Dbset<>.Load()すべてのレコードをロードするために呼び出すだけです。

ロード時間が非常に長く感じられたため、事前に生成されたビュー、タイプの統合、冗長性の削除などの改善を行いました。

上記の後、プロファイラーを使用してすべての時間が無駄になっている場所を確認したところ、読み込み時間の 10% 未満が SQL に使用され、約 70% が SQL に使用されてActivator.CreateInstance()いることがわかりました (この使用は、Entity Framework が "私たちのエンティティタイプを知っている)。

次にInclude()、必要なデータのみをロードするために を使用しようとしましたが、これによりロード時間が倍増し ( .Include()1 ~ 2 個のプロパティに適しているため、私が読んだものから)、明らかに目的を果たせません。

これは Entity Framework の制限ですか、それともパフォーマンスを向上させる他の方法がありますか?

4

0 に答える 0