2009-06-11 19 views
0

SQL Server CEに対してLinqを使用しています。Linq to SQL:SQL Server Compact Editionでクエリを最適化する

データベースは読み取り専用なので、いくつかの前提があります。

ファイルシステムへのアクセスを控えるために、私の最初のアプローチは、必要なエンティティをアプリケーションメモリにキャッシュし、それらに対してオブジェクトにlinqを使用することでした。

限られたクエリではうまく動作しますが、必要に応じて結合するときは、Linq to SQLを直接使用する方がオブジェクトへのLinqよりも優れています。

私は自分のパフォーマンスを最適化したいと思っています。私は今、ファイル全体をRAMにロードし、SQLに対してLinqを使用するように強制します。

どのように考えていますか?これ以上のアイデアは?

アリエル

答えて

1

をしたいようなあなたの問題は、SQLインデックス/外部キーのパフォーマンス対であるように思え参加が動作する場合、私は見当がつかないあなたはメモリのすべてを読み込むことができますし、LINQクエリ

を使用することができますイテレータのパフォーマンスを収集します。

Linq to Datasetsは、リレーションシップを維持する方法(具体的には、ADO.netデータセットにはリレーションシップコレクションがあります)を提供し、プライマリキー、外部キー、およびユニーク制約を適用できます。したがって、それらの結合パフォーマンスはLinq to SQLと似ているはずですが、メモリ内で実行されます。

liteのSQL実装の私の理解から、トランザクションは、パフォーマンスに大きな影響を持つことができ、あなたのすべてのための接続を開いたままにできるかどうか、これだけ

BEGIN TRANSACTION 

との接続を開始することは重大な影響を与える可能性がありますクエリ。ベンチマークはおそらくこれに答える唯一の確実な方法です。

関連する問題