Q
阅读SQL死锁图
5
A
回答
7
据我已经找到了一个“交换”事件是否存在等一个博客文章指出,您的问题的来源可以在您的查询的并行性。
Today's Annoyingly-Unwieldy Term: "Intra-Query Parallel Thread Deadlocks"
以上文章进入更多的细节,但是点睛之笔是:
解决方法1:添加索引或提高查询,以消除并行的需要。在大多数情况下,在查询中使用并行性表明您有非常大的扫描,排序或连接,并且不受适当索引支持。如果你调整查询,你会经常发现你最终得到了一个更快,更高效的不使用并行性的计划,因此不会遇到这种类型的问题。当然,在某些查询中(特别是DSS/OLAP类型的查询),可能很难消除所有大型扫描。
解决方法#2:在查询结束时强制执行带有“OPTION(MAXDOP 1)”查询提示的单线程执行。如果您无法修改查询,则可以将该提示应用于具有计划指南的任何查询。
您可能想试试看看是否有任何改进。
相关问题
- 1. 死锁链sql
- 2. SQL Server死锁
- 3. SQL 2005死锁
- 4. sql server中的读写器死锁
- 5. 死锁后请参阅stacktrace
- 6. 死锁在SQL Server
- 7. SQL死锁异常
- 8. SQL Server 2000死锁
- 9. SQL删除死锁
- 10. SQL Server死锁(SQL Server 2000)
- 11. sql server profiler中的死锁图
- 12. 应该如何阅读QLocalSocket/QDataStream以避免死锁?
- 13. UPDATE上的SQL Server死锁
- 14. SQL Server 2008死锁问题
- 15. SQL Server 2000截断死锁
- 16. WCF内的SQL Server死锁
- 17. SQL Server 2000 - 调试死锁
- 18. SQL Server 2005:事务死锁
- 19. SQL server 2005死锁情况
- 20. Rails + SQL SERVER 2008 +死锁
- 21. Postgresql锁死锁
- 22. MySQL表锁定(阅读)
- 23. 阅读从SQL
- 24. 阅读SQL/PHP
- 25. 死锁
- 26. 锁分区死锁
- 27. 死锁锁()方法
- 28. 死锁异步读取响应内容
- 29. 从管道中读取块和死锁
- 30. 阅读TCP数据死机Unity
你可以发送“显示innoDB状态”响应吗?它会提供更多信息。它应该包含最后的死锁 – varela
@varela - 这是SQL Server。 jaques什么版本?看起来像一个并列主义问题。 –
@Martin Smith。 SQL Server 2008 – Jacques