没有相应GRANT的WAIT锁

时间:2010-09-20 16:58:45

标签: sql-server sql-server-2008 locking performance

我正在尝试调查客户端站点的性能问题。我查看了该网站的阻止数据,并提出了几个SPID来调查一段时间。然后我查看了sys.syslockinfo中的数据,发现其中一个问题SPID在Intent Exclusive Table锁上有一个WAIT。我试图找到阻塞的SPID,但是在一段合理的时间内,我在WAIT之前找不到任何GRANT锁。

即使没有其他会话锁定表,是否有任何理由可能需要等待? sys.syslockinfo周围的任何已知错误?

我必须检查抓取锁定信息的方式 - 它可能是每15秒一种事情,在这种情况下,可能只是没有捕获GRANT。与此同时,如果有人知道另一个可能的原因,我将非常感谢您的见解。

谢谢!

1 个答案:

答案 0 :(得分:1)

当你说没有相应的GRANT时,你究竟在看什么?资源上的IX将与在同一资源上获得的任何S,U或X锁冲突。因此,如果任何人在桌面上有一个S锁,它将与IX冲突。一个典型的例子是尝试更新数据并请求表上的IX锁以启动锁层次结构(IX表 - > IX页 - > X键),并与执行锁升级的扫描冲突的请求在桌子上获得了一个完整的S锁。

在等待此IX锁定时阻止请求时,请查看sys.dm_exec_requests中的blocking_session_id,然后在sys.dm_tran_locks中查看该会话所持有的锁定。