Sql Server2005 查询死锁进程和抛弃进程
来源:互联网 发布:qq群淘宝客没有订单 编辑:程序博客网 时间:2024/05/18 01:06
isale为数据库名称
--引起死锁(阻塞)的进程(阻塞源头)
--kill源头的进程ID,一般可解决阻塞
select distinct
'进程ID ' = str( spid, 4 ),
'进程ID状态 ' = convert( char(10), status ),
'分块进程的进程ID ' = str( blocked, 2 ),
'工作站名称 ' = convert( char(10), hostname ),
'执行命令的用户 ' = convert( char(10), suser_name( uid ) ),
'数据库名 ' = convert( char(10), db_name( dbid ) ),
'应用程序名 ' = convert( char(10), program_name ),
'正在执行的命令 ' = convert( char(16), cmd ),
'累计CPU时间 ' = str( cpu, 7 ),
'IO ' = str( physical_io, 7 ),
'登录名 ' = loginame
from master..sysprocesses
where spid in ( select blocked from master..sysprocesses )
and blocked = 0
and (db_name( dbid) = 'isale ' )
order by str(spid,4)
抛弃的进程
select
'进程ID[SPID] ' = str( spid, 4 ),
'进程ID状态 ' = convert( char(10), status ),
'分块进程的进程ID ' = str( blocked, 2 ),
'工作站名称 ' = convert( char(10), hostname ),
'执行命令的用户 ' = convert( char(10), suser_name( uid ) ),
'数据库名 ' = convert( char(10), db_name( dbid ) ),
'应用程序名 ' = convert( char(10), program_name ),
'正在执行的命令 ' = convert( char(16), cmd ),
'累计CPU时间 ' = str( cpu, 7 ),
'IO ' = str( physical_io, 7 ),
'登录名 ' = loginame
from master..sysprocesses
where blocked <> 0
and (db_name( dbid) = 'isale ' )
order by spid
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE sp_who_lock
AS
BEGIN
DECLARE @spid INT ,
@bl INT ,
@intTransactionCountOnEntry INT ,
@intRowcount INT ,
@intCountProperties INT ,
@intCounter INT
CREATE TABLE #tmp_lock_who
(
id INT IDENTITY(1, 1) ,
spid SMALLINT ,
bl SMALLINT
)
IF @@ERROR <> 0
RETURN @@ERROR
INSERT INTO #tmp_lock_who ( spid, bl )
SELECT 0, blocked
FROM ( SELECT *
FROM sys.sysprocesses
WHERE blocked > 0
) a
WHERE NOT EXISTS ( SELECT *
FROM ( SELECT *
FROM sys.sysprocesses
WHERE blocked > 0
) b
WHERE a.blocked = spid )
UNION
SELECT spid, blocked
FROM sys.sysprocesses
WHERE blocked > 0
IF @@ERROR <> 0
RETURN @@ERROR
-- 找到临时表的记录数
SELECT @intCountProperties = COUNT(*), @intCounter = 1
FROM #tmp_lock_who
IF @@ERROR <> 0
RETURN @@ERROR
IF @intCountProperties = 0
SELECT N'现在没有阻塞和死锁信息' AS message
-- 循环开始
WHILE @intCounter <= @intCountProperties
BEGIN
-- 取第一条记录
SELECT @spid = spid, @bl = bl
FROM #tmp_lock_who
WHERE Id = @intCounter
BEGIN
IF @spid = 0
SELECT N'引起数据库死锁的是: ' + CAST(@bl AS VARCHAR(10))
+ N'进程号,其执行的SQL语法如下'
ELSE
SELECT N'进程号SPID:' + CAST(@spid AS VARCHAR(10))
+ N'被进程号SPID:' + CAST(@bl AS VARCHAR(10)) N'阻塞,其当前进程执行的SQL语法如下'
DBCC INPUTBUFFER (@bl )
END
-- 循环指针下移
SET @intCounter = @intCounter + 1
END
DROP TABLE #tmp_lock_who
RETURN 0
END
go
EXEC sp_who_lock
DROP PROC sp_who_lock
GO
SET QUOTED_IDENTIFIER OFF
GO
SET ANSI_NULLS ON
GO
- Sql Server2005 查询死锁进程和抛弃进程
- oracle 死锁、死进程查询和处理
- 查询杀死死锁进程
- Sql 死锁 杀死死锁进程
- SQL Server进程死锁
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- sql server 查看表的死锁和Kill 死锁进程
- 死锁和进程通信
- 进程饥饿和死锁
- 解决和处理SQL server2005死锁
- 找出SQL中的死锁进程
- ms sql 检索死锁进程
- SqlServer:死锁查询及进程信息查询
- 如何实现CSS样式实时切换
- DirectUI界面设计
- 【GLSL教程】(三)在OpenGL中向shader传递信息
- linux下的播放器
- OTcl与C++,NS2是如何识别并调用执行协议(转)
- Sql Server2005 查询死锁进程和抛弃进程
- jQuery插件datepicker的使用详解
- button按钮不错的样式
- 使用Cacti监控MySQL 端口不是3306
- 在PowerDesigner12 逆向工程DataBase SQl时出现:unable to list the tables 信息
- IT管理人才必备的十大能力
- 存储过程自动消失
- ADO连接SQL数据库的几种方式
- 使用批处理脚本将log分类