SQL死锁进程内容查询语句

1.方式1

SELECT   object_name(A.resource_associated_entity_id) as TABLENAME, A.request_session_id AS SPID,DB_NAME(B.dbid) AS DBName,B.blocked,B.dbid,B.program_name,B.waitresource,B.lastwaittype,B.loginame,B.hostname,B.login_time,B.last_batch--,B.*
FROM  sys.dm_tran_locks  A  ,sys.sysprocesses B
WHERE resource_type = 'OBJECT' AND request_session_id =B.spid  AND blocked >0

在这里插入图片描述

2.方式2

 SELECT spid, blocked,sp.dbid, DB_NAME(sp.dbid) AS DBName, object_name(A.resource_associated_entity_id) as TABLENAME,program_name,waitresource,lastwaittype,sp.loginame,sp.hostname,a.[Text] AS [TextData],SUBSTRING (A. TEXT,sp.stmt_start / 2,(CASE WHEN sp.stmt_end = - 1 THEN DATALENGTH (A. TEXT) ELSE sp.stmt_end END - sp.stmt_start) / 2) AS [current_cmd] ,object_name(C.resource_associated_entity_id) as TABLENAMEFROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A ,sys.dm_tran_locks CWHERE spid > 50  AND blocked >0   AND request_session_id =spid AND resource_type = 'OBJECT' ORDER BY blocked DESC,DB_NAME(sp.dbid) ASC,a.[text];

在这里插入图片描述

3.建立定时LOG记录,避免发生的时候无法抓取

--建立LOG表
CREATE TABLE A_LOCK_LOG		                       
(login_time  DATETIME ,last_batch  DATETIME,spid INT, blocked INT,TABLENAME  VARCHAR(6000),dbid  INT,DBName VARCHAR(6000),program_name VARCHAR(6000),waitresource VARCHAR(6000),lastwaittype VARCHAR(6000),loginame VARCHAR(6000),hostname VARCHAR(6000),TextData VARCHAR(6000),current_cmd VARCHAR(6000),CREATION_DATE		DATETIME	DEFAULT GETDATE()-- 创建时间(派令日期)
);
--建立定时作业的进行记录资料
INSERT INTO A_LOCK_LOG(login_time,last_batch,spid,blocked,TABLENAME,dbid,DBName,program_name,waitresource,lastwaittype,loginame,hostname,TextData,current_cmd)SELECT login_time,last_batch,spid, blocked,object_name(C.resource_associated_entity_id) as TABLENAME,sp.dbid, DB_NAME(sp.dbid) AS DBName, program_name,waitresource,lastwaittype,sp.loginame,sp.hostname,a.[Text] AS [TextData],SUBSTRING ( A. TEXT,sp.stmt_start / 2,(CASE WHEN sp.stmt_end = - 1 THEN DATALENGTH (A. TEXT) ELSE sp.stmt_end END - sp.stmt_start) / 2) AS [current_cmd] FROM sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A ,sys.dm_tran_locks CWHERE spid > 50  AND blocked >0   AND request_session_id =spid AND resource_type = 'OBJECT' ORDER BY blocked DESC,DB_NAME(sp.dbid) ASC,a.[text];

在这里插入图片描述
4.模拟上锁机制

ALTER PROCEDURE [dbo].[Test]--@ERR_NO     INT              OUTPUT,@ERR_DESC   NVARCHAR(4000)   OUTPUTAS
BEGINSET TRANSACTION ISOLATION LEVEL SERIALIZABLE; -- 设置事务隔离级别为 SerializableBEGIN TRANSACTION;-- 锁定目标表SELECT * FROM 表名 WITH (TABLOCKX, HOLDLOCK); -- 使用 TABLOCKX 和 HOLDLOCK 提示锁定表,并保持锁定-- 模拟长期锁定WAITFOR DELAY '00:10:00'; -- 等待10分钟COMMIT;
END

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/115846.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

重新认识架构—不只是软件设计

前言 什么是架构? 通常情况下,人们对架构的认知仅限于在软件工程中的定义:架构主要指软件系统的结构设计,比如常见的SOLID准则、DDD架构。一个良好的软件架构可以帮助团队更有效地进行软件开发,降低维护成本&#xff0…

FPGA——UART串口通信

文章目录 前言一、UART通信协议1.1 通信格式2.2 MSB或LSB2.3 奇偶校验位2.4 UART传输速率 二、UART通信回环2.1 系统架构设计2.2 fsm_key2.3 baud2.4 sel_seg2.5 fifo2.6 uart_rx2.7 uart_tx2.8 top_uart2.9 发送模块时序分析2.10 接收模块的时序分析2.11 FIFO控制模块时序分析…

C语言字符和字符串函数(2)

大家好,我今天继续来给大家分享C语言中的字符和字符串函数。 目录 ** 1.字符分类函数 2.memcpy 3.memmove 4.memcmp** 1.字符分类函数 islower判断字母小写函数 int main() {char ch w;if (islower(ch)){printf("小写\n");}else{printf("非小写\…

VR禁毒教育 | 毒品认知VR虚拟仿真科普:提高青少年抵制毒品的意识和能力

虚拟现实(VR)是一种让人们在仿真环境中体验、交互和操纵虚拟物体的技术,这种技术在许多领域都有广泛的应用,包括教育。特别是在毒品预防教育中,VR教育课件可以让学生以更直观、生动的方式了解各种毒品及其危害&#xf…

JCEF中js与java交互、js与java相互调用

jcef中js与java相互调用,java与js相互调用,chrome与java相互调用,java与chrome相互调用、jcef与java相互调用 前提:https://blog.csdn.net/weixin_44480167/article/details/133170970(java内嵌浏览器CEF-JAVA、jcef、…

Mybatis常见面试题总结

梳理面试过程中Mybatis相关的常见问题。为保证知识点覆盖,参考了《Mybatis从入门到精通》、《深入浅出Mybatis技术原理与实战》、《Mybatis技术内幕》等书籍。 Mybatis 简介 Mybatis 是一款优秀的持久层框架(ORM框架),它支持自定义SQL、存储过程以及高…

Java数据结构与算法从初阶到大牛

一、我们从一个小例题看起 因为该二维数组的很多默认值为0,因此记录了很多没有意义的数据-->稀疏数组 二、基本介绍 当一个数组中大部分元素为0,或者为同一个值时,可以使用洗漱数组来保存数组 稀疏数组的处理方法是: 1&…

大数据 Hive 数据仓库介绍

目录 一、​​数据仓库概念 二、场景案例:数据仓库为何而来? 2.1 操作型记录的保存 2.2 分析型决策的制定 2.3 OLTP 环境开展分析可行吗? 2.4 数据仓库的构建 三、数据仓库主要特征 3.1 面向主题性(Subject-Orient…

31.链表练习题(2)(王道2023数据结构2.3.7节16-25题)

【前面使用的所有链表的定义在第29节】 试题16:两个整数序列A,B存在两个单链表中,设计算法判断B是否是A的连续子序列。 bool Pattern(LinkList L1,LinkList L2){ //此函数实现比较L1的子串中是否有L2LNode *p, *q; //工作在L1,p记录L1子串…

Mac 上如何安装Mysql? 如何配置 Mysql?以及如何开启并使用MySQL

前言: 有许多开发的小伙伴,使用的是mac,那么在mac上如何安装,配置Mysql,以及使用Mysql了,今天来一个系统的教程。 安装Mysql 使用mysql前,我们需要先下载mysql,并按照以下几个步骤…

SpringMVC学习笔记——1

SpringMVC学习笔记——1 一、SpringMVC简介1.1、SpringMVC概述1.2、SpringMVC快速入门1.3、Controller中访问容器中的Bean1.4、SpringMVC关键组件的浅析 二、SpringMVC的请求处理2.1、请求映射路径配置2.2、请求数据的接收2.2.1、键值对方式接收数据2.2.2、封装JavaBean数据2.2…

vue之 h() 函数

前言 Vue推荐在绝大数情况下使用模板来创建HTML,然后一些特殊的场景,你真的需要JavaScript的完全编程的能力,这个时候你可以使用渲染函数 ,它比模板更接近编译器; h()函数是什么 Vue在生成真实的DOM之前&#xff0c…