• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >MsSql > SQL2005查看死锁存储过程sp_who_lock

SQL2005查看死锁存储过程sp_who_lock

作者: 字体:[增加 减小] 来源:互联网 时间:2017-05-11

通过本文主要向大家介绍了c lock 死锁,sql2005,sql2005安装图解,sql2005 64位下载,sql2005数据库下载等相关知识,希望本文的分享对您有所帮助

下面是我整理的监控sql server数据库,在性能测试过程中是否出现死锁、堵塞的SQL语句,还算比较准备,留下来备用。

调用方法:选中相应的数据库,执行exec sp_who_lock

USE [master]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO


CREATE procedure [dbo].[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 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 

IF @@ERROR<>0 RETURN @@ERROR 
 
-- 找到临时表的记录数 
select @intCountProperties = Count(*),@intCounter = 1 
from #tmp_lock_who 

IF @@ERROR<>0 RETURN @@ERROR 

if @intCountProperties=0 
	select '现在没有阻塞和死锁信息' as message 

-- 循环开始 
while @intCounter <= @intCountProperties 
begin 
	-- 取第一条记录 
	select @spid = spid,@bl = bl 
	from #tmp_lock_who where Id = @intCounter 
	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 ) 
	end 

	-- 循环指针下移 
	set @intCounter = @intCounter + 1 
end 

drop table #tmp_lock_who 

return 0 
end
</div>

</div>
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • SQL2005查看死锁存储过程sp_who_lock

相关文章

  • 2017-05-11SQLServer 2008 R2中使用Cross apply统计最新数据和最近数据
  • 2017-05-11SQL server 2008 数据安全(备份和恢复数据库)
  • 2017-05-11sql2008安装教程 SQL Server 2008 R2 安装图解
  • 2017-05-11SQL Server2005下的安全操作技巧分享
  • 2017-05-11SQLserver2008使用表达式递归查询
  • 2017-05-11SQLServer ntile获取每组前10%的数据
  • 2017-05-11SQL2005CLR函数扩展 - 关于山寨索引
  • 2017-05-11Linux编译mssql扩展使用php连接sqlserver2008的使用步骤
  • 2017-05-11SQL Server 2005安装实例环境图解第1/2页
  • 2017-05-11sqlserver2005 master与msdb数据库备份恢复过程

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Sql server 2005安装时ASP.Net版本注册要求警告的解决方法
    • SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法
    • SQL Server 连接到服务器 错误233的解决办法
    • SQLServer 2005 列所有存储过程的语句
    • SQL2005 ROW_NUMER实现分页的两种常用方式
    • Sql Server 2008完全卸载方法(其他版本类似)第1/2页
    • SQL Server 2005通用分页存储过程及多表联接应用
    • SQL server 2008 数据安全(备份和恢复数据库)
    • Sql2005注射辅助脚本[粗糙版]
    • sqlserver2005使用row_number() over分页的实现方法

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有