MSSQL·查看表锁进程及杀死进程的脚本
时间:2021-08-10
本文章向大家介绍MSSQL·查看表锁进程及杀死进程的脚本,主要包括MSSQL·查看表锁进程及杀死进程的脚本使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
阅文时长 | | 0.59分钟 | 字数统计 | | 955.2字符 |
主要内容 | | 1、引言&背景 2、声明与参考资料 | ||
『MSSQL·查看表锁进程及杀死进程的脚本』 | |||
编写人 | | SCscHero | 编写时间 | | 2021/8/10 AM11:52 |
文章类型 | | 系列 | 完成度 | | 已完成 |
座右铭 | 每一个伟大的事业,都有一个微不足道的开始。 |
一、引言&背景 完成度:100%
a) 应对问题
- 如何查看表锁进程?
- 如何查看资源等待的脚本?
- 如何杀死指定的表锁进程?
- With Lock的如何使用?
b) 应对场景
- 适用于MSSQL下表锁、资源等待的场景。
- 从现象上来说,表现为执行脚本或存储过程异常缓慢。
c) 解决原理&方法
- 查看表锁进程。
SELECT SPID=request_session_id, TABLENAME=OBJECT_NAME(resource_associated_entity_id), *
FROM sys.dm_tran_locks
WHERE resource_type='OBJECT';
- 查看资源等待的脚本。
SELECT r.session_id, s.login_name, r.status, blocking_session_id, blocks.login_name AS blockingLoginName, blocks.open_transaction_count AS blockingOpenTransCount, blocks.status AS blockingSessionStatus, r.start_time, s.client_interface_name, s.host_name, wait_type, wait_time, wait_resource, transaction_id, r.command, DB_NAME(r.database_id), CONVERT(DECIMAL(10, 2), r.estimated_completion_time / 1000.0 / 60.0 / 60.0) AS [ETA hours], CONVERT(VARCHAR(1000), (SELECT SUBSTRING(text, r.statement_start_offset / 2, CASE WHEN r.statement_end_offset=-1 THEN 1000 ELSE (r.statement_end_offset-r.statement_start_offset)/ 2 END)
FROM sys.dm_exec_sql_text(sql_handle) ))
FROM sys.dm_exec_requests r
LEFT JOIN sys.dm_exec_sessions blocks ON r.blocking_session_id=blocks.session_id
LEFT JOIN sys.dm_exec_sessions s ON r.session_id=s.session_id
WHERE 1=1 AND(r.status IN (N'suspended', N'running')OR blocking_session_id<>0);
- 杀死指定的表锁进程。
KILL [SPID] --[SPID]即为表锁进程ID
- With Lock的使用方式,在不想要锁表的地方加上。
SELECT * FROM [TABLE] WITH(NOCOCK)
二、声明与参考资料 完成度:100%
原创博文,未经许可请勿转载。
如有帮助,欢迎点赞、收藏、关注。如有问题,请评论留言!如需与博主联系的,直接博客私信SCscHero即可。
原文地址:https://www.cnblogs.com/SCscHero/p/15123090.html
- Spring Boot 集成Shiro和CAS
- 剑指offer代码解析——面试题22栈的压入、弹出序列
- 剑指offer代码解析——面试题21包含min函数的栈
- 剑指offer代码解析——面试题19二叉树的镜像
- mysql高可用架构设计,处理高并发,大流量!
- 零基础入门深度学习 | 第三章:神经网络和反向传播算法
- 微信企业付款到个人钱包引发的坑之反思~!
- Intellij idea创建javaWeb以及Servlet简单实现
- 设计模式之代理模式之读写分离!!!
- Phantomjs+Nodejs+Mysql数据抓取(1.数据抓取)
- Phantomjs+Nodejs+Mysql数据抓取(2.抓取图片)
- 深入浅出Redis-redis底层数据结构(上)
- Linux下自动化监控内存、存储空间!
- 深入浅出Redis-redis底层数据结构(下)
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 性能最佳实践:MongoDB索引
- Python基本数据类型-list-tuple-dict-set
- 深度学习应用的服务端部署
- MongoDB中的CURD操作
- 高可用的Redis主从复制集群,从理论到实践
- SpringBoot实战(一):使用Lombok简化你的代码
- Kubernetes Ingress入门指南和实践练习
- [译]Go语言常用文件操作汇总
- Redis常用数据类型对应的数据结构
- 详解卷积中的Winograd加速算法
- SpringMVC源码学习(一) - DispatcherSerlet和相关组件
- SpringMVC源码学习(二) - DispatcherServlet和相关组件
- 微服务使用 Hystrix 实现服务降级
- SpringMVC源码学习(三) - 请求处理的流程
- Hadoop框架:集群模式下分布式环境搭建