SQLSERVER 数据库根据LCK_M_S对应的waitsorce 查看被锁的表信息的简单方法
公司一个开发大牛召冠总搞过一个 DMSQLMONITOR 工具 能够识别Oracle以及SQLSERVER 数据库的锁和事务等问题, 非常好用
今天环境出现了不可用的情况, 所以这边着急进行一下问题分析, 使用这个工具进行了跟踪, 但是跟踪出来之后发现自己搞不太明白 查看哪些资源是被锁的..
工具的现象如下, 工具比较好用 可以导出到 excel

根据图 会发现有很多 锁的内容, 并且等待时间非常长..
但是工具查询出来的是RID 的信息 没有表 也没有 sql信息.
没办法 自己学习一下是数据库相关的知识 (越学越发现自己的数据库能力简直就是垃圾)
然后一翻瞎百度, 找到一个网站资源不错
https://my.oschina.net/u/4355973/blog/3609875
找到一个 waitsource 的定义 这里面 抄录如下:
在调查阻塞或死锁时,你可能很想知道阻塞的等待资源(wait_resource)是什么,通常等待资源的类型是Page、Key和RID,它们的格式分别是: waitresource="PAGE: 6:3:70133 "
waitresource="KEY: 6:72057594041991168 (ce52f92a058c)"
waitresource="RID: 6:15:11695844:3" 从等待资源的格式中可以看出,不同类型的等待资源,其资源描述符是不同的,通过资源描述符的各个成分,可以探测到阻塞发生的时候,竞争的临界资源到底是什么。 一,等待资源PAGE
对于等待资源是PAGE的情况,PAGE的格式是 Database_Id : File_Id : PageNumber,如下所示: waitresource=“PAGE: 6:3:70133 ” = Database_Id : FileId : PageNumber 二,等待资源Key
对于等待的资源是Key的情况,该阻塞发生在聚集索引上,Key资源的格式是 database_id, hobt_id (Magic Hash),其中 Magic Hash的某一个数据行的哈希值: waitresource=“KEY: 6:72057594041991168 (ce52f92a058c)” = Database_Id, HOBT_Id ( Magic Hash ) 三,等待资源RID
对于等待资源是RID的情况,阻塞发生在heap上,也就是说,RID等待只会发生在没有创建聚集索引的表上,RID等待资源各描述符的含义如下: waitresource="RID: 6:15:11695844:3"= Databae_Id:File_Id:Page_Id:Slot_No
但是只有给 RID 没有 具体的信息 继续瞎百度..
https://www.cnblogs.com/Amaranthus/archive/2011/05/03/2035497.html
里面有一个比较好用的说明
dbcc page ( {'dbname' | dbid}, filenum, pagenum [, printopt={0|1|2|3} ])
The printopt parameter has the following meanings:
0 - print just the page header
1 - page header plus per-row hex dumps and a dump of the page slot array (unless its a page that doesn't have one, like allocation bitmaps)
2 - page header plus whole page hex dump
3 - page header plus detailed per-row interpretation
=========================
dbcc traceon(3604)
dbcc page(northwind,1,100,1)
根据这个例子能够简单的学习一下. 当然了 我比较懒 只是用了一小部分
学习和操作如下:
注意 需要使用 sa 用户
第一步执行 dbcc traceon 设置trace打开
第二步 执行 dbcc page 具体的内容 注意可以使用id 不用非得使用名字.

第三步 查看 sqlserver的系统表 查看表名.
注意一点 得使用 具体的业务数据库进行查询 sa 是查询不出来.

就能够查询出具体的表来了.
SQLSERVER 数据库根据LCK_M_S对应的waitsorce 查看被锁的表信息的简单方法的更多相关文章
- SqlServer 查看被锁的表和解除被锁的表
查看被锁的表 1 2 select request_session_id spid,OBJECT_NAME(resource_associated_entity_id) tableName ...
- oracle查看被锁的表和解锁
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...
- oracle 查看被锁的表和解锁
相关视图 SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;S ...
- 【Oracle】查看被锁的表和解锁
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...
- 170308、oracle查看被锁的表和解锁
--以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...
- oracle查看被锁的表及解除锁
-- 查看被锁对象 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session ...
- Oracle查看被锁的表和解锁[转]
查看被锁的表 select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$p ...
- oracle查看被锁的表和被锁的进程,杀掉进程
-- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name ...
- oracle查看被锁的表以及解锁表
在oracle 上面查看别锁定的表,以及解锁表的sql: select t3.object_name,t3.owner,t2.machine,t2.sid,t2.serial# from v$lock ...
- Windows查看端口被什么进程占用的简单方法----菜鸟养成
1. 还是因为同事告知Oracle的服务器连不上 最后发现改了端口就可以了, 但是很困惑 不知道为什么会这样,然后简单查了下: 命令 netstat -ano 查看监听的端口 baidu出来一个管道 ...
随机推荐
- 一文带你认识AscendCL
摘要:AscendCL(Ascend Computing Language,昇腾计算语言)是昇腾计算开放编程框架,是对底层昇腾计算服务接口的封装. 本文分享自华为云社区<[CANN文档速递09期 ...
- 如何给MindSpore添加一个新的硬件后端?快速构建测试环境!
摘要:介绍如何给MindSpore添加一个新的硬件后端. 本文分享自华为云社区<如何给MindSpore添加一个新的硬件后端?快速构建测试环境!>,原文作者:HWCloudAI. Mind ...
- 一个Camel Multicast组件聚合策略问题的解决过程
摘要:本文通过案例,发现了一个Camel Multicast组件聚合策略相关的问题.通过查看Camel源代码,找到了问题原因并给出了解决方案.希望本文可以帮助到遇到同样问题的Camel用户. 本文分享 ...
- Intellij 查找排除JAR包的依赖关系(Maven Helper)
Intellij 查找排除JAR包的依赖关系(Maven Helper) 安装插件 Windows 类似
- 数据存入已有Excel
import openpyxl filepath = r'.\UCB2Create_course\SuccsessCourse.xlsx' wb = openpyxl.load_workbook(fi ...
- 用ChatGPT 玩转哔哩哔哩
用ChatGPT 玩转哔哩哔哩 哔哔终结者 BibiGPT 哔哩哔哩 BiliGPT,一款智能AI工具,帮助用户一键总结 哔哩哔哩视频内容,非常省心,软件基于GPT-3.5 AI,如果无法使用,可以使 ...
- 用Python学线性代数:概率密度函数拟合
问题 如果有一组数据,如何确定他们来自哪个统计分布? 从数据分析的角度,我们并不想要通过严格的统计方法去找到这个分布,Python中有一个可以自动拟合数据分析的库 -- distfit .这是一个py ...
- 【django-vue】celery延迟任务、定时任务 django中使用celery 秒杀功能 双写一致性 首页轮播图定时更新 课程前端页面
目录 上节回顾 字符编码 django-redis 今日内容 1 celery 执行异步任务,延迟任务,定时任务 延时任务 定时任务 2 django中使用celery 2.1 秒杀功能 2.1.1 ...
- WebRTC 的现状和未来:专访 W3C WebRTC Chair Bernard Aboba
WebRTC 无疑推动和改变了互联网视频,而这仅仅是刚刚开始,除了大家熟悉的 WebRTC-PC.Simulcast 和 SVC,有太多的新技术和新架构出现在 WebRTC 新的标准中,比如 WebT ...
- 1688 复杂业务场景下的 Serverless 提效实践
1688 复杂业务场景下的 Serverless 提效实践 作者 | 远岩(阿里巴巴 CBU 技术部 Serverless & 工程效能负责人) 前言 首先为大家简单介绍一下我们的业务场景,1 ...