[Tips]:查询sql server2005死锁进程
2009-07-08 16:10
176 查看
[code]CREATE Table #Who(spid int, ecid int, status nvarchar(50), loginname nvarchar(50), hostname nvarchar(50), blk int, dbname nvarchar(50), cmd nvarchar(50), request_ID int); CREATE Table #Lock(spid int, dpid int, objid int, indld int, [Type] nvarchar(20), Resource nvarchar(50), Mode nvarchar(10), Status nvarchar(10) ); INSERT INTO #Who EXEC sp_who active --看哪个引起的阻塞,blk INSERT INTO #Lock EXEC sp_lock --看锁住了那个资源id,objid DECLARE @DBName nvarchar(20); SET @DBName='NameOfDataBase' SELECT #Who.* FROM #Who WHERE dbname=@DBName SELECT #Lock.* FROM #Lock JOIN #Who ON #Who.spid=#Lock.spid AND dbname=@DBName; --最后发送到SQL Server的语句 DECLARE crsr Cursor FOR SELECT blk FROM #Who WHERE dbname=@DBName AND blk<>0; DECLARE @blk int; open crsr; FETCH NEXT FROM crsr INTO @blk; WHILE (@@FETCH_STATUS = 0) BEGIN; dbcc inputbuffer(@blk); FETCH NEXT FROM crsr INTO @blk; END; close crsr; DEALLOCATE crsr; --锁定的资源 SELECT #Who.spid,hostname,objid,[type],mode,object_name(objid) as objName FROM #Lock JOIN #Who ON #Who.spid=#Lock.spid AND dbname=@DBName WHERE objid<>0; DROP Table #Who; DROP Table #Lock;
[/code]
相关文章推荐
- Sql Server2005 查询死锁进程和抛弃进程
- SqlServer 查询死锁,杀死死锁进程
- SQL 死锁进程查询
- sql server 查询和Kill死锁进程
- 查询数据的时候 提示事务(进程 ID **)与另一个进程被死锁在 锁 资源上,并且已被选作死锁牺牲品。
- MS SQL Server:查询死锁进程(转载)
- 查询数据库中进程死锁情况脚本。
- oracle 中查询被锁的对象,并杀死死锁进程的方法
- 查询Sqlserver数据库死锁的一个存储过程 (查杀死锁进程)
- oracle 中查询被锁的对象,并杀死死锁进程的方法
- oracle死锁语句查询 以及杀掉死锁数据库进程
- 查询杀死死锁进程
- 查询死锁,把killed进程,进一步从操作系统中kill
- SqlServer查询和Kill进程死锁的语句
- SqlServer查询和Kill进程死锁的语句
- mysql死锁-查询锁表进程-分析锁表原因
- SqlServer:死锁查询及进程信息查询
- SqlServer 查询死锁,杀死死锁进程
- 查询内并行度导致服务器命令(进程 ID #66)死锁。请重新运行该查询,并在查询中用查询暗示选项 (maxdop 1) 去掉查询内并行度
- 查询数据库死锁进程