2010-11-18 141 views
8

运行sp_who2时,出现一个SQL命令阻塞,但正在等待“睡眠”和“等待命令”的进程。这没有任何意义。sp_who2 BlkBy睡眠进程等待命令

alt text

任何想法可能会导致什么呢?我知道DELETE正在一个事务中运行,该事务以前在表中插入了很多行,这可能是问题吗?

回答

11

你可能会对SPID 98开放事务A阻塞的SPID不必活跃

试试这个,看看open_tran

SELECT 
    p1.SPID AS blockedSPID, p2.SPID AS blockingSPID, ... 
FROM 
    master..sysprocesses p1 
    JOIN 
    master..sysprocesses p2 ON p1.blocked = p2.spid 

继,this script gives你打开的事务,最后的SQL和计划。

而且有KB 224453良好的措施

+1

这是一个SSRS问题,它不会重用我打开该事务的连接(因此永远不会关闭它),这最终意味着有一个打开的事务在表上锁定一个锁。谢谢您的帮助! – 2010-11-19 00:42:40

0

读不知道,你正在运行这将是非常困难的说的SQL。但是基于删除/插入场景,您是否不可能启动插入事务,然后又打开另一个事务来删除其中一些插入的记录而不粉碎先前的事务?

我以前见过这种类型的问题,这是它如何体现出来的。