mysql 杀存储过程进程_SQL SERVER 杀死锁进程存储过程
use master --必须在master数据库中创建
go
if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[p_lockinfo]') and OBJECTPROPERTY(id, N'IsProcedure') = 1)
drop procedure [dbo].[p_lockinfo]
GO
/**//*--处理死锁
查看当前进程,或死锁进程,并能自动杀掉死进程
因为是针对死锁的,所以如果有死锁进程,只能查看死锁进程
当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程
感谢: caiyunxia,jiangopen 两位提供的参考信息
--邹建 2004.04(引用请保留此信息)--*/
/**//*--调用示例
exec p_lockinfo
--*/
create proc p_lockinfo
@kill_lock_spid bit=1, --是否杀掉死锁的进程,1 杀掉, 0 仅显示
@show_spid_if_nolock bit=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示
as
set nocount on
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 master..sysprocesses a join (
select blocked from master..sysprocesses 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 master..sysprocesses 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 master..sysprocesses
set @count=@@rowcount
end
if @count>0
begin
create table #t1(id int identity(1,1),a nvarchar(255),b Int,EventInfo nvarchar(1000))
if @kill_lock_spid=1
begin
declare @spid varchar(255),@标志 varchar(255)
while @i<=@count
begin
select @spid=进程ID,@标志=标志 from #t where id=@i
insert #t1 exec('dbcc inputbuffer('+@spid+')')
if @@rowcount=0 insert #t1(a) values(null)
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 where id=@i
insert #t1 exec(@s)
if @@rowcount=0 insert #t1(a) values(null)
set @i=@i+1
end
select a.*,进程的SQL语句=b.EventInfo
from #t a join #t1 b on a.id=b.id
order by 进程ID
end
set nocount off
go
mysql 杀存储过程进程_SQL SERVER 杀死锁进程存储过程相关推荐
- mysql 的命名管道_SQL Server中的命名管道(named pipe)及其使用
1. 什么是命名管道? 与TCP/IP(传输控制协议或internet协议)一样,命名管道是一种通讯协议.它一般用于局域网中,因为它要求客户端必须具有访问服务器资源的权限. 要解释这个问题,我还是摘录 ...
- mysql 事务日志备份_SQL Server恢复模式与事务日志备份
在SQL Server中,数据库不能像Oracle数据库一样设置归档模式,但是可以进行事务日志备份,其作用等同于Oracle数据库的日志文件归档. SQL Server 备份和还原操作发生在数据库的恢 ...
- mysql临时表如何分页_sql server 与 mysql 分页查询以及创建临时表的区别
一: 分页查询的时候 sql server使用的是top关键字,而mysql 使用的是limit e.g: 查询第五个到第十个入职的职员 sql server2000: select top 6 * ...
- mysql udp提权_SQL Server数据库1433端口解封提权
众所周知,1433端口是SQL Server默认的端口,SQL Server服务使用两个端口:TCP-1433.UDP-1434.其中1433用于供SQL Server对外提供服务,1434用于向请求 ...
- 2005本地mysql连接不上_SQL Server 2005/2008 连接不上本地数据库引擎的解决方法
1.右键我的电脑------------管理-----------服务和应用程序----------------sql server配置管理器--------------------sql serve ...
- mysql 2008新建用户_Sql Server 2008数据库新建分配用户的详细步骤
前言: 当一个项目完成后,为了数据安全,总会对该项目的数据库分配一个用户,应该说总会创建一个用户来管理这个数据库,并且这个用户只能管理这个数据库.搞了好多次,每次都忘记怎么设置,所以写一篇博文记录一下 ...
- mysql表变量临时表_sql server 临时表详细讲解及简单示例
一.概述 在sql server里临时表存储在TempDB库中,TempDB是一个系统数据库,它只有Simple恢复模式,也是最小日志记录操作.主要用于存放局部临时表,全局临时表,表变量,都是基于临时 ...
- mysql windows身份验证_SQL Server 2005 怎么就不能用Windows身份验证方式登录呢?
SQL Server 2005 自从装到我的电脑上始终无法使用Windows身份验证的方式登录,由于使用用户名和密码登录还算顺畅,所以一直忽略了这 SQL Server 2005 自从装到我的电脑上始 ...
- mysql 2008数据库配置文件_SQL Server 2008数据库的配置及连接
在连接数据库之前必须保证SQL Server 2008是采用SQL Server身份验证方式而不是windows身份验证方式.如果在安装时选用了后者,则重新设置如下: SQL Server 2008装 ...
最新文章
- 中小型互联网企业安全建设漫谈。
- 优雅参数判空_java 方法参数怎么优雅校验?
- 高级特性(2)- XML
- win10任务管理器快捷键_你都知道吗?Win10任务管理器到底藏了多少秘密
- 记Booking.com iOS开发岗位线上笔试
- 关于web工程项目路径的一些说明
- php设置mysql 编码_php怎么设置mysql编码?
- codova添加android慢_Android amp; iOS,请自动开始你们的 battle
- pyinstaller 打包出现问题
- 一枚比特币30多万,家用电脑24小时挖矿,多久才能挖到一枚?
- 一个OSPF的区域备份在手册里看到的
- docker的源配置
- 基于微信小程序的便捷记账本家庭个人理财小程序#毕业设计
- excel查找通配符波浪号,星号
- 华为往事(五)--Camp;C08
- 计算机底层知识之内存
- 如何建立起一套有效的APP监控体系
- 生成对抗网络——原理解释和数学推导
- nRF51822定时器设置
- (自)协方差矩阵与互协方差矩阵简介
热门文章
- Boost.Asio入门
- zedboard:使用ISE和modelsim搭建仿真环境
- webgl坐标转换_WebGL 坐标系统
- mysql数据丢失_图解MySQL | 「原理解析」 MySQL使用固定的server_id导致数据丢失
- hashmap::begin() 坑
- [Web 前端] mobx教程(二)-mobx主要概念
- git 常用命令以及其他使用笔记
- 详谈调用winpcap驱动写arp多功能工具
- 《Cocos2d 跨平台游戏开发指南(第2版)》一1.9 添加动作到精灵
- Android通过for循环批量发送短信