我在使用 LINQ To Entities 时遇到问题。
如果我运行我的 LINQ 查询,那么它会在执行计划中使用并行(收集流和修复流),这会导致大量 CXPACKET 等待。
但是,如果我将 LINQ 翻译查询(我通过 ToTraceString 函数获得)直接运行到我的 sql 服务器,则执行计划不包含并行性。
为什么通过 LINQ 运行 SQL 与 SQL 查询本身时,SQL 的并行性存在差异?
我该如何克服这个问题?我希望我的 LINQ 查询的运行方式与我直接运行其 SQL 时的方式相同。
执行计划示例:
使用 LINQ:
直接SQL:
我可以发布我的 SQL 查询,但我认为它在这里没有帮助......