2012-03-08 9 views
0

SQL Server Compact Editionファイルにアイテムを保存するwpfアプリケーションがあります。 このファイルは、データコンテキストを構成するクラスのリストから動的に作成されます。 次のような状況が発生すると、読み込み時間が遅くなります。自分のアプリケーションにこれを取得するには、私はロード私のDataContextには表1、表1に表2と表2SQLコンパクトエディションの読み取り速度を向上

からリンク表

にこのリンクを

ItemB

のリストが含まれていItemAのリストをロードしようと

SQL ServerのすべてのTable1行。 各Table1行が返されたとき、私は新しいItemAに情報を追加します。私は次に、現在のTable1行にリンクテーブルを介してリンクするTable2行を探します。返されたすべてのTable2行に対して、それらをItemBのリストに変換し、ItemAに追加します。

私は最終的にItemBのリストを含むItemAのリストを作成します。問題は、私はDBへの複数の呼び出しを行い、これは数百項目になると負荷時間を押し上げていることです。 複数の呼び出しを行わずにこれを行うより良い方法はありますか? アプリを高速化する最も良い方法は何ですか?私はItemAをキャッシングするべきですかもしそうなら、これを行う最も良い方法は何ですか?

+0

これまでの回答に基づいて、アプリケーション(1分のロード時間からミリ秒まで)を高速化する唯一の方法は、すべてのオブジェクトをディスクにシリアル化して読み込み、メモリにロードすることですSQLサーバーCEを完全に捨てることを考えています。私はこのアプリケーションをWindows 8 Metroに移植したいと思っています。そして、それはそうするより魅力的な理由のように思われるSQL ceをサポートしていないためです。 - 誰かが私のシリアライズされたファイルが成長して、それがうまくいかなくなってしまうか、あるいはこれが悪い考えである理由を知ることができるかについてアドバイスをしていますか? – Oli

答えて

0

答えはそれほど多くはありませんが、私は上記のシナリオではSQL Serverが十分に高速ではないと考えています。私は上記のコメントに従ってファイルにシリアライズされたメモリリストにバッキングストアを変更しました。 1ヶ月のテストの後、私は何の問題も経験しておらず、アプリケーションのスピードを飛躍的に向上させました。

関連する問題