私はEntity Frameworkで構築されたアプリケーションを持っています。エンティティはvirtual
のナビゲーションプロパティを持ちます。これは遅延読み込みを意味します。すべてが機能していますが、私はパフォーマンスの問題に気付きました。SQL Server CEのEntity Framework - 遅延ロードとパフォーマンスの考慮事項
一部のプロパティで遅延ロードすると、データベースに複数のクエリが発生します。例えばI .Where(...)
が10個のアイテムのコレクションにある場合、データベースへの追加のコールが10回生成されます。その10回のコールでSQL time
が合計20msであるとします。しかし、クエリを完了するのにかかる全体的な時間はずっと長くなります。
.Include(...)
と熱心に負荷をかけても、同様のSQL time
(つまり20ms)が表示されますが、操作がはるかに高速に完了します。
Profilerをまだ実行していませんが、SQL Server CEデータベースやその他の同様の「インフラストラクチャ」操作のボトルネックが開いていると思われます。
私は本当に遅延読み込みを使用したい、それは私のコードをはるかに簡単にします。 SQL Server CE接続を最適化する方法はありますか、SQL Server CEのパフォーマンスを向上させるために何かできることはありますか?
今私の接続文字列
<add name="dataRepositoryConnection"
connectionString="Data Source=|DataDirectory|XXX.sdf"
providerName="System.Data.SqlServerCe.4.0" />
SQL Serverに対して実行したときに、(遅延ロード対熱心な)2つのシナリオが同じ性能を与えるので、私は本当に、SQL CEに問題を絞り込んています。
あなたの返事ありがとうございます、それはWPFデスクトップアプリケーションです。 –
同じコードが適用され、WPFのApp_Startupから呼び出すだけです – ErikEJ