|
1
4
死锁可能有多种原因及其组合:
所有这些都很常见。 我建议你读 |
|
|
2
4
这个问题并不特别——当开发人员不太了解锁的工作原理,只把事务看作“黑匣子”并期望他们的解决方案能够扩展时,这是很典型的。 米奇的评论是对的,他给了一个专家报酬——这个问题太大了,任何解决办法都无法解决。您需要准备好导致死锁的查询跟踪,并且必须分析从索引到表设计、事务隔离级别到查询模式的所有内容。 我建议从SQL Server Profiler开始,设置一个跟踪,它将生成一个死锁图。这至少可以确定问题查询和死锁的资源。设置另一个跟踪以查找慢速查询(例如100毫秒),并加快这些查询的速度。查询运行的时间越长,锁争用的概率就越高。 |