プロジェクトでEntity Framework 4を使用していますが、できるだけ最適化されていることを確認する必要がある特定のクエリが繰り返し実行されています。LINQクエリのパフォーマンス
私は1つのデータベーステーブルを持っているが、次の重要な列を持つItems
と呼ばれる:
id (primary key)
name
別のテーブルにはFavoriteItems
は二つの重要な列私のコード内のメソッドで
itemId (foreign key to the items table)
accountId(foreign key to the account table)
を持っていると呼ばれる、私はaccountId
を持っています、入力パラメータとしてsearchTerm
を含む。
このメソッドは、その名前の一部としてsearchTermを持つitemsテーブルのすべてのアイテムを返す必要があります。また、アルファベット順にソートする必要がありますが、accountIdが一致するFavoriteItemsテーブルにIdを持つアイテムがあります。パラメータとして指定されたaccountIdは、一番上に(アルファベット順に)並べる必要があります。さらに、検索結果には、お気に入りの項目かどうかを示すブール値が含まれている必要があります。
私はそれを動作させましたが、クエリは不器用に思えます。どのようにあなたはエレガントで演技的な方法でこのクエリを記述しますか?
クエリを追加できますか? – sternr
必ずしも答えではなく、「可能な限り最適化」されていることが重視されている場合は、*個人的に* TSQLでこれを書いています。 YMMV。ちょうど 'sayin' ... –
あなたはクエリを書いて、あなたはパフォーマンスの問題を抱えているのですか、それとも先制攻撃されていますか? – BZink