公司一个开发大牛召冠总搞过一个 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 查看被锁的表信息的简单方法的更多相关文章

  1. SqlServer 查看被锁的表和解除被锁的表

    查看被锁的表 1 2 select   request_session_id   spid,OBJECT_NAME(resource_associated_entity_id) tableName   ...

  2. oracle查看被锁的表和解锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  3. oracle 查看被锁的表和解锁

    相关视图 SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$process ;S ...

  4. 【Oracle】查看被锁的表和解锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  5. 170308、oracle查看被锁的表和解锁

    --以下几个为相关表SELECT * FROM v$lock;SELECT * FROM v$sqlarea;SELECT * FROM v$session;SELECT * FROM v$proce ...

  6. oracle查看被锁的表及解除锁

    -- 查看被锁对象 select object_name,machine,s.sid,s.serial# from v$locked_object l,dba_objects o ,v$session ...

  7. Oracle查看被锁的表和解锁[转]

    查看被锁的表 select p.spid,a.serial#, c.object_name,b.session_id,b.oracle_username,b.os_user_name from v$p ...

  8. oracle查看被锁的表和被锁的进程,杀掉进程

    -- 1. 查看被锁的表 SELECT p.spid, a.serial#, c.object_name, b.session_id, b.oracle_username,b.os_user_name ...

  9. oracle查看被锁的表以及解锁表

    在oracle 上面查看别锁定的表,以及解锁表的sql: select t3.object_name,t3.owner,t2.machine,t2.sid,t2.serial# from v$lock ...

  10. Windows查看端口被什么进程占用的简单方法----菜鸟养成

    1.  还是因为同事告知Oracle的服务器连不上 最后发现改了端口就可以了, 但是很困惑 不知道为什么会这样,然后简单查了下: 命令 netstat -ano 查看监听的端口 baidu出来一个管道 ...

随机推荐

  1. Solon2 开发之IoC,一、注入或手动获取配置

    约定 resources/app.yml( 或 app.properties ) #为应用配置文件 配置样例 track: name: xxx url: http://a.a.a db1: jdbcU ...

  2. Axure 公司年会抽奖器

    步骤一:拖拉摆放好相关控件 1.摆好相关相关背景,即一个心形和一行文字"一路同行,感谢同行" 2.一个中继器,中继器里面放有一个300X60的白底黑框矩形.一个"name ...

  3. yaml/json/ini 配置读取

    ConfigParser 安装 ConfigParser 是解析配置文件的第三方库,须要安装 pip install ConfigParser pip install ConfigParser Con ...

  4. windows使用rclone挂载alist为本地磁盘,设置开机自启

    前言 实现在windows下将alist挂载为本地磁盘,并设置开机自启,使得重启后依然生效. 教程 下载软件 Rclone: Rclone downloads WinFsp: https://winf ...

  5. Educational DP Contest R - Walk(倍增floyd,矩阵快速幂)

    题目来源:AtCoder EDU DP题集 题目链接:Here 单独拎出来是因为这道题是一个很好的板子,值得记录 题意 给定一个 n 个节点的有向图的邻接矩阵,求该有向图中长度为 k 的路径长. 解法 ...

  6. 利用gost实现pptp转socks5或http代理

    利用gost实现pptp转socks5或http代理 以debian10为例 1.安装pptp服务器端 sudo apt-get install pptpd #debian系统 编辑/etc/pptp ...

  7. 二、Mycat安装

    系列导航 一.Mycat实战---为什么要用mycat 二.Mycat安装 三.mycat实验数据 四.mycat垂直分库 五.mycat水平分库 六.mycat全局自增 七.mycat-ER分片 万 ...

  8. linux挂载磁盘和设置开机自动挂载

    1.查看分区信息 root@xmgl opt]# fdisk -l ......此处省略一些信息 Disk /dev/sdb: 644.2 GB, 644245094400 bytes, 125829 ...

  9. win32com操作word 第十五 Find接口的使用

    最近一直在忙于项目,以至于win32com的视频一直拖更.要不,书面形式更新吧.这次介绍的是Find接口. 假如,要在一篇2万字的文章中找到某些关键词,并返回Range对象,通常可以通过遍历段落 + ...

  10. util工具函数

    1 /** 2 * @param {Function} fn 防抖函数 3 * @param {Number} delay 延迟时间 4 */ 5 export function debounce(f ...