查询Sqlserver数据库死锁的一个存储过程
来源:互联网 发布:js alert用法 编辑:程序博客网 时间:2024/05/17 02:54
原文: 点击打开链接
/************************************************************ * Code formatted by SoftTree SQL Assistant ?v6.1.35 * Time: 2013/11/12 16:48:00 ************************************************************/IF OBJECT_ID('proc_who_lock') IS NOT NULLBEGIN DROP PROC proc_who_lockENDGOCREATE PROCEDURE proc_who_lockASBEGINDECLARE @spid INT DECLARE @blk INT DECLARE @count INT DECLARE @index INT DECLARE @lock TINYINT SET @lock = 0 CREATE TABLE #temp_who_lock(id INT IDENTITY(1, 1),spid INT,blk INT) IF @@error <> 0 RETURN @@errorINSERT INTO #temp_who_lock ( spid, blk )SELECT 0, blockedFROM ( SELECT * FROM MASTER..sysprocesses WHERE blocked > 0 )aWHERE NOT EXISTS( SELECT * FROM MASTER..sysprocesses WHERE a.blocked = spid AND blocked > 0 ) UNIONSELECT spid, blockedFROM MASTER..sysprocessesWHERE blocked > 0IF @@error <> 0 RETURN @@errorSELECT @count = COUNT(*), @index = 1FROM #temp_who_lockIF @@error <> 0 RETURN @@errorIF @count = 0BEGIN SELECT '没有阻塞和死锁信息' RETURN 0ENDWHILE @index <= @countBEGIN IF EXISTS( SELECT 1 FROM #temp_who_lock a WHERE id > @index AND EXISTS( SELECT 1 FROM #temp_who_lock WHERE id <= @index AND a.blk = spid ) ) BEGIN SET @lock = 1 SELECT @spid = spid, @blk = blk FROM #temp_who_lock WHERE id = @index SELECT '引起数据库死锁的是: ' + CAST(@spid AS VARCHAR(10)) + '进程号,其执行的SQL语法如下' SELECT @spid, @blk DBCC INPUTBUFFER(@spid) DBCC INPUTBUFFER(@blk) END SET @index = @index + 1END IF @lock = 0BEGIN SET @index = 1 WHILE @index <= @count BEGIN SELECT @spid = spid, @blk = blk FROM #temp_who_lock WHERE id = @index IF @spid = 0 SELECT '引起阻塞的是:' + CAST(@blk AS VARCHAR(10)) + '进程号,其执行的SQL语法如下' ELSE SELECT '进程号SPID:' + CAST(@spid AS VARCHAR(10)) + '被' + '进程号SPID:' + CAST(@blk AS VARCHAR(10)) + '阻塞,其当前进程执行的SQL语法如下' DBCC INPUTBUFFER(@spid) DBCC INPUTBUFFER(@blk) SET @index = @index + 1 ENDENDDROP TABLE #temp_who_lock RETURN 0ENDGO EXEC proc_who_lock
- 查询Sqlserver数据库死锁的一个存储过程
- 查询Sqlserver数据库死锁的一个存储过程
- 查询Sqlserver数据库死锁的一个存储过程
- 查询Sqlserver数据库死锁的一个存储过程
- 查询Sqlserver数据库死锁的一个存储过程
- 查询Sqlserver数据库死锁的一个存储过程 (查杀死锁进程)
- SqlServer查看死锁的存储过程
- SQLServer 查询数据库每个表占用空间的存储过程
- SQLServer 查询数据库每个表占用空间的存储过程
- 压缩SQLServer数据库日志的一个存储过程
- 查看数据库死锁情况的存储过程
- 查看数据库死锁的存储过程SP_WHO_LOCK
- 一个查死锁的存储过程
- Sqlserver 查询无效的存储过程
- 数据库-存储过程-SQLServer
- sqlserver数据库异步处理的存储过程
- sqlserver存储过程 连接不同的数据库
- SqlServer数据库的存储过程以及事务处理
- vim 下输入^A ^M
- [Qt教程] 第39篇 网络(九)进程和线程
- iOS开发键盘高度的处理
- HTML 设置页面缓存no-cache
- 【巴嘎日记】当整型作为分子的时候要小心警惕!
- 查询Sqlserver数据库死锁的一个存储过程
- jsp页面iframe控制滚动条的显示
- [Qt教程] 第40篇 网络(十)WebKit初识
- Huffman 编码压缩算法
- ArcEngine空间分析之线段相交分析求交点
- 体验有默认参数的函数————求圆的面积和圆柱的体积
- linux下安装maven
- 串行(Sequential)、并发(Concurrent)、并行(parallel)与分布式(distributed)
- Flex通过RemoteObject调用java实例:flex传入参数以及接收java返回结果