SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL
SQLSERVER中的锁资源类型RID KEY PAG EXT TAB DB FIL
在检测死锁的时候,会用到sp_lock这个存储过程,里面有一列:type 即锁的资源类型
通俗来讲就是SQLSERVER可以在哪些资源上加锁
可以加锁的资源有RID KEY PAG EXT TAB DB FIL ,下面一一道来
以下是对不同种类的资源含义的解释,只有了解他们的意思,才能真正看懂阻塞
1、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()
2、KEY:数据库引擎内部使用的十六进制数。
这个值和sys.partions.hobt_id相对应出现这种资源说明锁是在一个索引上面。通过查询sys.partitions视图里相应的object_id和index_id就能找到这个索引
3、PAG:格式为fileid:pagenumber的数字,其中fileid标识包含页的文件,pagenumbe标识页
4、EXT:标识区中的第一页的数字。该数字的格式为fileid:pagenumber
5、TAB:没有提供信息,因为已在sp_lock中的Objid列中标识了表
6、DB:没有提供信息,因为已经在sp_lock中的dbid列中标识了数据库
7、FIL:文件的标识符,与sys.database_files目录视图中的file_id列相匹配
通过这些资源的名字,就可以找到阻塞发生在哪个对象的哪种资源上
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· PostgreSQL 和 SQL Server 在统计信息维护中的关键差异
· CSnakes vs Python.NET:高效嵌入与灵活互通的跨语言方案对比
· DeepSeek “源神”启动!「GitHub 热点速览」
· 我与微信审核的“相爱相杀”看个人小程序副业
· Plotly.NET 一个为 .NET 打造的强大开源交互式图表库
· 上周热点回顾(2.17-2.23)