在检测死锁的时候,会用到sp_lock这个存储过程,里面有一列:type 即锁的资源类型
通俗来讲就是sqlSERVER可以在哪些资源上加锁
可以加锁的资源有RID KEY PAG EXT TAB DB FIL ,下面一一道来
以下是对不同种类的资源含义的解释,只有了解他们的意思,才能真正看懂阻塞
RID:格式为fileID:pagenumber:rID的标识符,其中fileID标识包含页的文件, pagenumber标识包含行的页,rID标识页上的特定行。
fileID与sys.databases_files 目录视图中的file_ID列相匹配
例如:在运行sp_lock的时候有一行的Resource列显示RID 是1:6681:26 而status列显示wait,
他的意思是在第一个数据文件上的第6681页上的第26个行上的锁资源。
如果要查看这个页面上到底有哪些数据,可以考虑使用DBCC PAGE()
KEY:数据库引擎内部使用的十六进制数。
这个值和sys.partions.hobt_ID相对应出现这种资源说明锁是在一个索引上面。通过查询sys.partitions视图里相应的object_ID和index_ID就能找到这个索引
PAG:格式为fileID:pagenumber的数字,其中fileID标识包含页的文件,pagenumbe标识页
EXT:标识区中的第一页的数字。该数字的格式为fileID:pagenumber
TAB:没有提供信息,因为已在sp_lock中的ObjID列中标识了表
DB:没有提供信息,因为已经在sp_lock中的dbID列中标识了数据库
FIL:文件的标识符,与sys.database_files目录视图中的file_ID列相匹配
通过这些资源的名字,就可以找到阻塞发生在哪个对象的哪种资源上
--本篇文章转自:SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL
总结以上是内存溢出为你收集整理的SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL全部内容,希望文章能够帮你解决SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)