代码之家  ›  专栏  ›  技术社区  ›  Tom H

没有相应授权的等待锁

  •  0
  • Tom H  · 技术社区  · 14 年前

    我正在尝试调查客户端站点的性能问题。我已经查看了站点的阻塞数据,并提出了几个SPID来调查一段时间。然后,我查看了sys.syslockinfo中的数据,发现其中一个问题spid在意向排他表锁上有等待。我试图找到阻塞的SPID,但在等待之前找不到任何授权锁,这似乎是合理的。

    即使没有其他会话锁定表,它也可能必须等待,这有什么原因吗?sys.syslockinfo周围有已知的错误吗?

    我必须检查一下获取锁定信息的方式——可能是每15秒一次,在这种情况下,可能根本就没有获得授权。同时,如果有人知道另一个潜在的原因,我会非常感谢你的洞察力。

    谢谢!

    1 回复  |  直到 14 年前
        1
  •  1
  •   Remus Rusanu    14 年前

    当你说没有相应的补助金时,你到底在看什么?资源上的ix将与在同一资源上获得的任何S、U或X锁冲突。因此,如果任何人在表上有S锁,它将与IX冲突。一个典型的例子是请求尝试更新数据并请求表上的IX锁以启动锁层次结构(ix table->ix page->x键),并且与执行锁升级并获得表上完全S锁的扫描冲突。

    当请求在等待此ix锁时被阻止时,请查看 blocking_session_id 在里面 sys.dm_exec_requests 然后检查会话持有的锁 sys.dm_tran_locks .