等待资源(wait_resource)解码

在调查阻塞或死锁时,你可能很想知道阻塞的等待资源(wait_resource)是什么,通常等待资源的类型是Page、Key和RID,它们的格式分别是:

waitresource="PAGE: 6:3:70133 "
waitresource="KEY: 6:72057594041991168 (ce52f92a058c)"
waitresource="RID: 6:15:11695844:3"

从等待资源的格式中可以看出,不同类型的等待资源,其资源描述符是不同的,通过资源描述符的各个成分,可以探测到阻塞发生的时候,竞争的临界资源到底是什么。

最简单的等待资源类型是 OBJECT 和 TABLE,本文分享如何解码这两个等待资源的方法。

1,OBJECT等待资源

对于等待资源是OBJECT的情况,等待资源各描述符的含义如下:

waitresource="OBJECT: 6:12347015633:1 "=Database_Id:Object_Id:PageNumber

第三个字段是PageNumber,通过PageNumber,可以还原阻塞发生的现场情况,真正阻塞的临界资源是一个Page。

2,TAB等待资源

对于等待资源是TAB的情况,等待资源各描述符的含义如下:

waitresource="TAB: 5:261575970:1"=DatabaseID:ObjectID:IndexID

 在阻塞发生时,数据库应该正在做全表扫描操作,阻塞发生在一个小表或小索引上,查询在请求资源时把整个表都锁定了。

 

对于解码等待资源是PAGE、KEY和RID的方法,有时间整理之后再分享。

你可能感兴趣的:(等待资源(wait_resource)解码)