[SQL]死锁处理语句
SQL 处理 语句 死锁
2023-09-14 09:01:01 时间
今天在群里看到分享的解决死锁的sql语句,就想着这东西以后肯定用的着,就下载下来,在这里记录一下,以后查找也方便。
![复制代码](http://common.cnblogs.com/images/copycode.gif)
1 SET QUOTED_IDENTIFIER ON 2 GO 3 SET ANSI_NULLS ON 4 GO 5 CREATE PROCEDURE sp_who_lock 6 AS 7 BEGIN 8 DECLARE @spid INT , 9 @bl INT , 10 @intTransactionCountOnEntry INT , 11 @intRowcount INT , 12 @intCountProperties INT , 13 @intCounter INT 14 CREATE TABLE #tmp_lock_who 16 id INT IDENTITY(1, 1) , 17 spid SMALLINT , 18 bl SMALLINT 20 IF @@ERROR 0 21 RETURN @@ERROR 22 INSERT INTO #tmp_lock_who ( spid, bl ) 23 SELECT 0, blocked 24 FROM ( SELECT * 25 FROM sys.sysprocesses 26 WHERE blocked 0 27 ) a 28 WHERE NOT EXISTS ( SELECT * 29 FROM ( SELECT * 30 FROM sys.sysprocesses 31 WHERE blocked 0 32 ) b 33 WHERE a.blocked = spid ) 34 UNION 35 SELECT spid, blocked 36 FROM sys.sysprocesses 37 WHERE blocked 0 38 IF @@ERROR 0 39 RETURN @@ERROR 40 -- 找到临时表的记录数 41 SELECT @intCountProperties = COUNT(*), @intCounter = 1 42 FROM #tmp_lock_who 43 IF @@ERROR 0 44 RETURN @@ERROR 45 IF @intCountProperties = 0 46 SELECT N现在没有阻塞和死锁信息 AS message 47 -- 循环开始 48 WHILE @intCounter = @intCountProperties 49 BEGIN 50 -- 取第一条记录 51 SELECT @spid = spid, @bl = bl 52 FROM #tmp_lock_who 53 WHERE Id = @intCounter 54 BEGIN 55 IF @spid = 0 56 SELECT N引起数据库死锁的是: + CAST(@bl AS VARCHAR(10)) 57 + N进程号,其执行的SQL语法如下 58 ELSE 59 SELECT N进程号SPID: + CAST(@spid AS VARCHAR(10)) 60 + N被进程号SPID: + CAST(@bl AS VARCHAR(10)) N阻塞,其当前进程执行的SQL语法如下 61 DBCC INPUTBUFFER (@bl ) 62 END 63 -- 循环指针下移 64 SET @intCounter = @intCounter + 1 65 END 66 DROP TABLE #tmp_lock_who 67 RETURN 0 68 END 69 go 70 EXEC sp_who_lock 71 DROP PROC sp_who_lock 72 GO 73 SET QUOTED_IDENTIFIER OFF 74 GO 76 SET ANSI_NULLS ON 78 GO
![复制代码](http://common.cnblogs.com/images/copycode.gif)
博客版权: 本文以学习、研究和分享为主,欢迎转载,但必须在文章页面明显位置给出原文连接。
如果文中有不妥或者错误的地方还望高手的你指出,以免误人子弟。如果觉得本文对你有所帮助不如【推荐】一下!如果你有更好的建议,不如留言一起讨论,共同进步!
再次感谢您耐心的读完本篇文章。
转载:http://www.cnblogs.com/wolf-sun/p/3879050.html
一个线上SQL死锁异常分析:深入了解事务和锁 引发死锁的原因是什么?如何避免?本文详细介绍了和死锁有关的知识点,通过深入分析MySQL事务和锁的机制,结合案例背景,找到了问题的所在,并梳理了解决方案,详解其原理。希望对同学们有所启发。
SQL Server死锁中的会话隔离级别为序列化(Serializable)实验测试 SQL Server死锁中的会话隔离级别为序列化(Serializable)实验测试最近在分析SQL Server的死锁时,发现一个比较有意思的现象,发现死锁当中一个会话的隔离级别为序列化(Serializable),这个是让人比较奇怪的地方,我们知道SQL Server数据库的默认隔离级别为已提交读(READ COMMITTED),除非人为设置事务隔离级别(TRANSACTION ISOLATION LEVEL),否则事务隔离级别会使用数据库的默认隔离级别。
SQL SERVER 查看近期死锁 SQL SERVER 查看近期死锁在项目运行的过程中,死锁不可能完全避免,但要尽可能减少死锁的出现, 产生死锁的原因主要是: 1,系统资源不足。 2,进程运行推进的顺序不合适。 3,资源分配不当等。 产生死锁的四个必要条件: 互斥条件:一个资源每次只能被一个进程使用,即在一段时间内某资源仅为一个进程所占有。
SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁 原文:SQL Server死锁诊断--同一行数据在不同索引操作下引起的死锁 对于数据库中出现的死锁,通俗地解释就是:不同Session(会话)持有一部分资源,并且同时相互排他性地申请对方持有的资源,然后双方都得不到自己想要的资源,从而造成的一种僵持的现象。
SQL Server死锁 原文:SQL Server死锁 SQL Server死锁 多个事务之间互相等待对方的资源,导致这些事务永久等待 注意是永久等待,而非长事务 死锁的4个条件 互斥条件(Mutual exclusion):资源不能被共享,只能由一个进程使用。
SQL Server 死锁的告警监控 原文:SQL Server 死锁的告警监控 今天这篇文章总结一下如何监控SQL Server的死锁,其实以前写过MS SQL 监控错误日志的告警信息,这篇文章着重介绍如何监控数据库的死锁,当然这篇文章不分析死锁产生的原因、以及如何解决死锁。
在日常运维阿里云RDS SQL Server产品过程中,经常会被客户问道:“应用程序被死锁报错啦?影响很大,到底是哪个进程导致了死锁发生的啊?怎么解决啊?怎么办呀?”。
第十二届 BigData NoSQL Meetup — 基于hbase的New sql落地实践 立即下载
相关文章
- 数据分析sql面试必会6题经典_经典的SQL语句面试题「建议收藏」
- SQL Prompt10 安装激活教程,让你写sql 如鱼得水[通俗易懂]
- ORA-39827: Direct path load of PL/SQL function not permitted. ORACLE 报错 故障修复 远程处理
- MySQL Error number: MY-011708; Symbol: ER_GRP_RPL_SQL_SERVICE_SERVER_ACCESS_DENIED_FOR_USER; SQLSTATE: HY000 报错 故障修复 远程处理
- ORA-13780: SQL statement does not exist. ORACLE 报错 故障修复 远程处理
- ORA-15739: invalid name “string” for SQL Performance Analyzer task ORACLE 报错 故障修复 远程处理
- Spark-Sql源码解析之二 Sqlparser:sql –> unresolved logical plan详解大数据
- 快速导出Oracle数据库表记录SQL语句大全(oracle导出表数据sql)
- 一步搞定:MySQL批量更新SQL技巧(mysql批量更新sql)
- Mysql 中使用自增 SQL 语句实现自动编号(mysql自增sql语句)
- Exploring the Power of Oracle SQL(oracle.sql)
- MySQL中常用的SQL语句(sql语句mysql)
- 语句深入MySQL:删除外键的完美SQL语句(mysql删除外键sql)
- 语句MySQL中常用SQL语句实用指南(mysql常用sql)
- SQL党进阶必备:轻松转换Oracle数据库教程(sql转oracle)
- MySQL如何输出SQL语句?25字教程速成!(mysql输出sql)
- MySQL教程:拼接SQL语句的方法(mysql拼接sql语句)
- 如何使用MySQL导出SQL语句?(mysql导出sql语句)
- MSSQL实现SQL注入防护的完美解决方案(mssql 防sql注入)
- 掌握SQL语句才能深度应用Oracle(sql语句和oracle)
- Oracle数据库中修改值的SQL方法简介(oracle修改值sql)
- MySQL数据库SQL语句指南(mysql下sql语句)
- MySQL查询父子级关系的SQL语句(mysql 上下级sql)