怎么解除SQL Server死锁的问题?SQL Server死锁是我们经常会碰到的问题,下面就为您介绍如何查询SQL Server死锁,希望对您学习SQL Server死锁方面能有所帮助。
SQL Server死锁的查询方法: exec master.dbo.p_lockinfo 0,0 ---显示死锁的进程,不显示正常的进程 exec master.dbo.p_lockinfo 1,0 ---杀死死锁的进程,不显示正常的进程.
SQL Server死锁的解除方法: Create proc p_lockinfo @kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示 @show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示 as declare @count int,@s nvarchar(1000),@i int select id=identity(int,1,1),标志, 进程ID=spid,线程ID=kpid,块进程ID=blocked,数据库ID=dbid,
数据库名=db_name(dbid),用户ID=uid,用户名=loginame,累计CPU时间=cpu, 登陆时间=login_time,打开事务数=open_tran, 进程状态=status, 工作站名=hostname,应用程序名=program_name,工作站进程ID=hostprocess, 域名=nt_domain,网卡地址=net_address into #t from( select 标志='死锁的进程', spid,kpid,a.blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address,
s1=a.spid,s2=0 from mastersysprocesses a join ( select blocked from mastersysprocesses group by blocked )b on a.spid=b.blocked where a.blocked=0 union all select '|_牺牲品_>', spid,kpid,blocked,dbid,uid,loginame,cpu,login_time,open_tran, status,hostname,program_name,hostprocess,nt_domain,net_address, s1=blocked,s2=1 from mastersysprocesses a where blocked<>0 )a order by s1,s2 select @count=@@rowcount,@i=1 if @count=0 and @show_spid_if_nolock=1 begin insert #t select 标志='正常的进程', spid,kpid,blocked,dbid,db_name(dbid),uid,loginame,cpu,login_time, open_tran,status,hostname,program_name,hostprocess,nt_domain,net_address from mastersysprocesses set @count=@@rowcount end if @count>0 begin create table #t1(id int identity(1,1),a nvarchar(30),b Int,EventInfo nvarchar(255)) if @kill_lock_spid=1 begin declare @spid varchar(10),@标志 varchar(10) while @i<=@ count begin select @spid=进程ID,@标志=标志 from #t whereid=@ i insert #t1 exec('dbcc inputbuffer(')') if @标志='死锁的进程' exec('kill'+@ spid) set @i=@i+1 end end else while @i<=@ count begin select @s='dbcc inputbuffer('+cast(进程ID as varchar)+')' from #t whereid=@ i insert #t1 exec(@s) set @i=@i+1 end select a.*,进程的SQL语句=b.EventInfo from #t a join #t1 b on a.id=b.id end
编辑推荐:
- Excel 左右柱形图的作法实例教程03-02
- 怎么解除SQL Server死锁的问题03-02
- 怎样修改Excel2007自选图形中的文字格式03-02
- 安装JAVA JDK需要注意什么03-02
- Excel工作表打印线删除图解详细教程03-02
- 利用线性插值法放大位图实现教程03-02
- Excel中如何将整数天数转变为年月日形式03-02
- 数据库提示未能从程序集中加载类型的解决方法03-02
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- 安装JAVA JDK需要注意什么
安装JAVA JDK需要注意什么
26-03-02 - 数据库提示未能从程序集中加载类型的解决方法
数据库提示未能从程序集中加载类型的解决方法
26-03-02 - cntv中国网络电视台CBox央视影音之客户端设置
cntv中国网络电视台CBox央视影音之客户端设置
26-03-02 - 怎么在Excel2007单元格输入多行内容
怎么在Excel2007单元格输入多行内容
26-03-02 - Linux下怎么安装自己想要的jdk
Linux下怎么安装自己想要的jdk
26-03-02 - SQL Server 2008安装配置教程
SQL Server 2008安装配置教程
26-03-02 - excel2007中如何对行列实现快速转换
excel2007中如何对行列实现快速转换
26-03-02 - 如何高亮突出Excel2007单元格平均值附近的数字
如何高亮突出Excel2007单元格平均值附近的数字
26-03-02 - 如何快速关闭并重启Mac中的菜单栏
如何快速关闭并重启Mac中的菜单栏
26-03-02 - Excel 内外柱形图的作法实例教程
Excel 内外柱形图的作法实例教程
26-03-02
