码迷,mamicode.com
首页 > 其他好文 > 详细

死锁,简单看一看

时间:2015-12-18 10:28:49      阅读:174      评论:0      收藏:0      [点我收藏+]

标签:

一、如何跟踪死锁

跟踪方法见: http://guobaoguo.blog.163.com/blog/static/109162582010112311553185/

我选择的是第二种,然后获取了一份儿跟踪文件。

1、SQL Server Profiler的图形展示

技术分享

2、提取的xml数据

技术分享

 

二、死锁的牺牲者 victim="process98274c8"

三、看process、resource节点

process:

1、process98274c8——报表查询

2、process9862748——跨3机器,dtc分布式事务,耗时较长

resource:

1、用到的资源:表=FA_Voucher, 索引 =PK_FA_Voucher,

process9862748做插入操作, 加排他X锁,

       process98274c8 申请RangeS-S锁,请求类型 wait

2、用到的资源:表=YW_CwDistributionInfo,

         process98274c8做查询,加共享S锁,

         process9862748 申请SIX锁,请求类型 convert,此处对convert不是太理解

3、根据锁兼容模式表来看以上两种都是冲突的,也是死锁

https://msdn.microsoft.com/zh-cn/library/jj856598(v=sql.120).aspx

技术分享

四、解决办法

1、报表查询添加 with(nolock),非实时性,允许脏读。

2、后期看跟踪情况,可能的话拆分分布式事务,改用消息模式

死锁,简单看一看

标签:

原文地址:http://www.cnblogs.com/dayou123123/p/5056083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!