有人可以帮我阅读/理解这个死锁图吗?
我不明白为什么进程 75 请求锁定他已经锁定的对象?
有人可以帮我阅读/理解这个死锁图吗?
我不明白为什么进程 75 请求锁定他已经锁定的对象?
根据一篇博客文章,我发现“交换事件”的存在表明您的问题的根源可能是您的查询中的并行性。
上面的文章更详细,但重点是:
解决方法 #1:添加索引或改进查询以消除对并行性的需求。在大多数情况下,在查询中使用并行性表明您有一个非常大的扫描、排序或连接,而适当的索引不支持这些操作。如果您调整查询,您通常会发现您最终会得到一个更快、更有效的计划,该计划不使用并行性,因此不会出现此类问题。当然,在某些查询(尤其是 DSS/OLAP 类型的查询)中,可能难以消除所有大型扫描。
解决方法 #2: 在查询结束时使用“OPTION (MAXDOP 1)”查询提示强制单线程执行。如果您无法修改查询,则可以使用计划指南将提示应用于任何查询。
您可能想尝试一下,看看是否有任何改进。