1
canesten 2014-08-09 13:28:08 +08:00
先查日志
分析一下怎么锁的 |
2
CosWind 2014-08-09 14:53:21 +08:00
高级别事务或者乐观锁配合稍低级别事务
|
3
ybh37 2014-08-09 14:59:01 +08:00
先分析死锁原因吧。
尽量不用Update 频繁的修改操作尽量用insert替代。 如果是通信丢包造成的死锁,尽快更换网络设备。 |
4
cloudhunter OP @canesten 谢谢,我们一开始没想到会出现死锁问题,然后数据库好像就没开启任何这方面的日志记录
|
5
cloudhunter OP @CosWind 谢谢你我Google研究下你说的东西
|
6
cloudhunter OP @ybh37 所有的操作都是delete / insert,没有update。通信丢包也能造成死锁的吗?其实我们的程序之前一直运行的好好的,就是前一阵突然出现大量死锁才引起注意。可能就是你说的原因。请问你之前是遇到通信丢包死锁的情况吗?
|
7
ybh37 2014-08-09 21:36:56 +08:00
@cloudhunter 以前遇到的情况也是突然出现大量死锁,最终经多方排查是交换机丢包导致。
跟微软那边确认了,如果从数据库发出去消息后,在接收ODBC之类的客户端驱动程序的数据包时,如果出现丢包,很有可能会出现数据库当前操作的线程锁定(大概是这个意思,记不太清了,08年前后的事情了) |
8
cloudhunter OP @ybh37 谢谢你的信息。数据库那边没日志,死无对证啊,T_T。
|