Linq to Sql with Sql Compact edition を使用して、WPF クライアント アプリを作成しています。データベースは比較的小さく (3MB)、読み取り専用です。
肝心なのは、パフォーマンスが期待したほど良くないということです。それを向上させるためのヒントと実用的な方法を探しています。
その他の事実: スキーマには、それらの間に広範な関係を持つ約 12 個のエンティティが含まれています。
アプリをプロファイリングすると、クエリが非常に高速に実行されていることがわかりましたが、c# エンティティの構築は最も時間がかかるプロセスです (最大 8 秒になる可能性があります)。ほとんどの場合、LoadWith を使用しており、DataContext はオブジェクト グラフをメモリ内に構築するしかありませんでした。
必要に応じて、追加情報を提供できます。
編集:
- 前述したように、データベースは読み取り専用であるため、DataContext は変更を追跡していません。
- 繰り返し発生するクエリで静的クエリを利用しています。問題は、アプリケーションの初期化時に、多くのオブジェクトをメモリにプリフェッチしてキャッシュとして提供する場合です。
ご協力いただきありがとうございます。
アリエル