4

LINQ To Entities で問題が発生しています。

LINQ クエリを実行すると、実行プランで並列処理 (Gather Streams と Reparation Stream)が使用され、多くの CXPACKET 待機が発生します。

しかし、LINQ で変換されたクエリ (ToTraceString 関数を介して取得したもの) を SQL サーバーに直接実行すると、実行プランには並列処理が含まれません。

LINQ を介して実行する場合と SQL クエリ自体を実行する場合の SQL の並列処理に関して違いがあるのはなぜですか?

どうすればこの問題を克服できますか? SQL を直接実行した場合と同じ方法で LINQ クエリを実行したいと考えています。

実行計画の例:

LINQを使用: リンクを使用して

SQL を直接:

linq なし - 直接 sql

SQL クエリを公開できますが、ここでは役に立たないと思います...

4

1 に答える 1