use master
go
declare @spid int,@bl int
DECLARE s_cur CURSOR FOR
select 0 ,blocked
from (select * from sysprocesses where blocked>0 ) a
where not exists(select * from (select * from sysprocesses where blocked>0 ) b
where a.blocked=spid)
union select spid,blocked from sysprocesses where blocked>0
OPEN s_cur
FETCH NEXT FROM s_cur INTO @spid,@bl
WHILE @@FETCH_STATUS = 0
begin
if @spid =0
select ' 引起数据库死锁的是: '+ CAST(@bl AS VARCHAR(10)) + ' 进程号, 其执行的SQL 语法如下'
else
select ' 进程号SPID :'+ CAST(@spid AS VARCHAR(10))+ ' 被' + ' 进程号SPID :'+ CAST(@bl AS VARCHAR(10)) +' 阻塞, 其当前进程执行的SQL 语法如下'
DBCC INPUTBUFFER (@bl )
FETCH NEXT FROM s_cur INTO @spid,@bl
end
CLOSE s_cur
DEALLOCATE s_cur
exec sp_who2
运行sp_who2 ,看blk by 栏, 如果这栏不是空白, 有一个数字, 这就是造成阻塞(blocking)的线程id. 然后运行DBCC Inputbuffer(线程id), 你就可以看见这个线程在干什么。
来源:http://club.techtarget.com.cn/showtopic-42012-1.aspx
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/iwteih/archive/2009/12/15/5012946.aspx
分享到:
相关推荐
在SQL Server数据库管理系统中,死锁是一个...总的来说,通过监控未提交事务、查找阻塞和死锁的SQL语句,以及适时使用`KILL`命令,我们可以有效地管理和解决SQL Server中的死锁问题,确保数据库系统的稳定和高效运行。
oracle查询死锁语句,并能根据根据ID值杀死锁表的进程!
oracle数据库死锁查询并处理,被锁对象、引起死锁原因等查询及解决方法
### 查看数据库死锁SQL 在数据库管理与优化过程中,处理死锁问题是非常重要的一个环节。死锁是指两个或更多的事务在等待对方释放资源时所形成的一种僵局状态,这会导致事务无法继续执行,严重影响数据库系统的性能...
首先,要查询死锁进程,可以使用以下SQL语句: ```sql select request_session_id spid, OBJECT_NAME(resource_associated_entity_id) tableName from sys.dm_tran_locks where resource_type='OBJECT' ``` 这...
查询sql的死锁进程,查找并杀死。解决生产数据库中卡死的现象。postgresql查询死锁以及杀死死锁进程sql
查询死锁的sql,一般数据库死锁了,可以查询出死锁的sql语句,死锁进程等信息。
以上介绍了如何在SQL Server中诊断和解决死锁问题的方法,主要包括查询锁信息、查询导致死锁的SQL语句以及如何结束死锁进程。这些方法对于维护数据库系统的稳定性和提高效率具有重要意义。在实际操作中,还需要结合...
判断数据库死锁的SQL,可以检测出死锁的语句和进程
为了查询死锁,我们可以使用以下SQL语句: ```sql SELECT * FROM v$lock WHERE request > 0 AND grant = 0; ``` 这条语句将列出所有等待资源且尚未被授予锁的会话。 Oracle还提供了一个名为`DBMS_LOCK`的PL/SQL包...
除了解决 SQL 表死锁问题外,还可以使用其他 SQL 语句来查询当前活动的锁管理器资源信息和数据库进程信息。 1. 查询当前活动的锁管理器资源信息: SELECT resource_type ' 资 源 类 型 ',request_mode ' 请 求 模 ...
用于sqlserver优化使用,可定位死锁,并查询死锁语句。
oracle死锁问题查询代码,仅供参考,有问题大家一起交流
/**//*--调用示例 exec p_lockinfo 0,1 --*/ create proc p_lockinfo @kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉...@show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示
在T-SQL语句中,可以使用`SET DEADLOCK_PRIORITY`命令为特定事务指定优先级,高优先级的事务更少可能成为死锁的受害者。 5. **SQL脚本执行**: 提供的压缩包文件"Sqlserver自动杀死死锁进程sql"很可能包含了一个...
本文将深入探讨如何使用SQL语句创建前后触发器,并通过一个具体的示例来阐述其工作原理。 ### 一、触发器概述 触发器是数据库管理系统中的一个重要组成部分,用于响应数据表上的特定事件,如INSERT、UPDATE或...
- 手动干预:管理员可以通过终止特定事务、调整事务的执行顺序或优化SQL语句来避免死锁。 - 设置超时:为事务设置超时限制,超时后自动回滚,防止无限期等待。 - 优化资源请求:尽量减少事务对资源的请求,或者调整...
在Oracle数据库管理(DBA)工作中,SQL语句扮演着至关重要的角色,它们是DBA进行数据查询、数据库维护和性能优化的主要工具。以下是一些ORACLE DBA常用的SQL语句,这些语句涵盖了数据库管理和优化的核心方面: 1. *...
FOR UPDATE`语句**:在事务中,可以使用`FOR UPDATE`来对查询结果进行行级锁定,确保在事务结束前其他事务不能修改这些行,从而避免死锁。 5. **定期检测和中断死锁**:SQL Server提供了一个名为`DEADLOCK_...