写次问题发生时,执行下列查询,找出block源头select spid,status,substring(suser_sname(sid),1,30), substring(hostname,1,12), cmd, b.text from master.sys.sysprocesses as a cross apply sys.dm_exec_sql_text(a.sql_handle) as b where spid in (select blocked from master.sys.sysprocesses) and blocked =0
DBCC INPUTBUFFER (blk)查看。
哦 学到了挂起不一定是堵塞。现在数据库的状态是:有主键,没索引,插入的时候没用事务,只要一进行插入就进入已挂起状态,并且处于一直挂起的状态(这个说明已经堵塞了吧,每次只插一条数据),如果有select查询的进程时就会马上进行可运行状态,而有update,delete,insert时就会处于已挂起状态,而且是一直挂起。
客户端的表现我也无法得知(因为客户端在各个地方,我也没办法知道),但是我在数据库中就是看不到要插入的数据
from master.sys.sysprocesses as a cross apply sys.dm_exec_sql_text(a.sql_handle) as b
where spid in (select blocked from master.sys.sysprocesses) and blocked =0