Session blocked itself

本文详细解析了SQL Server并发度设置过高导致的死锁问题,包括两种可能的原因及其解决策略。当并发度设置不当引发死锁时,可以通过优化SQL查询性能和调整并发度设置来避免此类问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


从上图可以看出,spid51 block了自己。这种情况有两个可能的原因:


1,When an SPID is waiting for an I/O page latch, you may notice that the blocked column briefly reports that the SPID is blocking itself. This behavior is a side effect of the way that latches are used for I/O operations on data pages

对于这种原因,block的时间会非常短。上图不属于这种情况。下面的链接详细解释了这种情况的成因:

http://support.microsoft.com/kb/906344


2, 还有一个可能的原因是SQL Server运行query时的并发度设的太高。上图就是这种情况。这是sql server为了提高一个性能差的query时做的自动优化,即多线程并行的运行一个sql。出现这种情况说明sql的性能很差,需要优化。但一般也可以不用管它。

但有时会由于过高的并行导致死锁出现:intra-query parallel thread deadlocks。即由于并发度太高导致并行的线程间发生了死锁。

http://blogs.msdn.com/b/bartd/archive/2008/09/24/today-s-annoyingly-unwieldy-term-intra-query-parallel-thread-deadlocks.aspx

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值