5

パフォーマンスの観点から、Entity Frameworkのlinqクエリ句の順序について心配する必要がありますか?

以下の例では、2つのwhere句の順序を変更すると、DBルックアップのパフォーマンスに影響がありますか?

        using (var context = new ModelContext())
        {
            var fetchedImages = (from images in context.Images.Include("ImageSource")
                                 where images.Type.Equals("jpg")
                                 where images.ImageSource.Id == 5
                                 select images).ToArray();
        }
4

2 に答える 2

4

いいえ、これら2つのwhere句を変更してもパフォーマンスには影響しません。生成されたSQLはとにかく次のようになります。

WHERE [condition1] AND [condition2]

さらに、論理演算子と組み合わせて条件を記述できます。

where images.Type.Equals("jpg") && images.ImageSource.Id == 5
于 2013-03-21T08:18:45.997 に答える
-1

一般的なケースでは、whereオペレーターが「短絡」するため、最初の値がfalseの場合、2番目の値も検査されません。したがって、1つがより頻繁に失敗する場合は、通常、最初に確認する必要があります。

ただし、より頻繁な障害の処理が遅い場合、これは機能しなくなります。

確実に判断する唯一の方法は、適切なツールを使用してコードをプロファイリングすることです。

于 2013-03-21T09:08:47.573 に答える