데이터 베이스 MySQL 튜토리얼 查看当前进程,或死锁进程,并能自动杀掉死进程_MySQL

查看当前进程,或死锁进程,并能自动杀掉死进程_MySQL

Jun 01, 2016 pm 02:05 PM
select 확인하다 오토매틱 프로세스

/*--处理死锁

查看当前进程,或死锁进程,并能自动杀掉死进程

因为是针对死的,所以如果有死锁进程,只能查看死锁进程
当然,你可以通过参数控制,不管有没有死锁,都只查看死锁进程

--邹建 2004.4--*/

/*--调用示例

exec p_lockinfo
--*/
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 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 blocked0
)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(30),b Int,EventInfo nvarchar(255))
if @kill_lock_spid=1
begin
declare @spid varchar(10),@标志 varchar(10)
while @i begin
select @spid=进程ID,@标志=标志 from #t where id=@i
insert #t1 exec('dbcc inputbuffer(' @spid ')')
if @标志='死锁的进程' exec('kill ' @spid)
set @i=@i 1
end
end
else
while @i begin
select @s='dbcc inputbuffer(' cast(进程ID as varchar) ')' from #t where id=@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
go

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

뜨거운 기사 태그

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

Douyin에 로그인된 장치를 삭제하는 단계를 확인하세요. Douyin에 로그인된 장치를 삭제하는 단계를 확인하세요. Mar 26, 2024 am 09:01 AM

Douyin에 로그인된 장치를 삭제하는 단계를 확인하세요.

Xianyu에서 자신의 ID를 확인하는 방법_Xianyu에서 개인 닉네임을 확인하는 방법 소개 Xianyu에서 자신의 ID를 확인하는 방법_Xianyu에서 개인 닉네임을 확인하는 방법 소개 Mar 22, 2024 am 08:21 AM

Xianyu에서 자신의 ID를 확인하는 방법_Xianyu에서 개인 닉네임을 확인하는 방법 소개

NetEase Cloud Music에서 음악 순위를 확인하는 방법_NetEase Cloud Music에서 음악 순위를 확인하는 방법 NetEase Cloud Music에서 음악 순위를 확인하는 방법_NetEase Cloud Music에서 음악 순위를 확인하는 방법 Mar 25, 2024 am 11:40 AM

NetEase Cloud Music에서 음악 순위를 확인하는 방법_NetEase Cloud Music에서 음악 순위를 확인하는 방법

Linux에서 드라이브 자동 마운트 Linux에서 드라이브 자동 마운트 Mar 20, 2024 am 11:30 AM

Linux에서 드라이브 자동 마운트

Linux 프로세스 우선순위 조정 방법에 대한 자세한 설명 Linux 프로세스 우선순위 조정 방법에 대한 자세한 설명 Mar 15, 2024 am 08:39 AM

Linux 프로세스 우선순위 조정 방법에 대한 자세한 설명

WeChat에 가입한 그룹 수를 확인하는 방법: 간단한 단계 WeChat에 가입한 그룹 수를 확인하는 방법: 간단한 단계 Mar 26, 2024 am 10:06 AM

WeChat에 가입한 그룹 수를 확인하는 방법: 간단한 단계

Kuaishou Live Companion 비디오의 인기 목록을 보는 방법 Kuaishou Live Companion 비디오의 인기 목록을 보는 방법 Mar 29, 2024 pm 08:09 PM

Kuaishou Live Companion 비디오의 인기 목록을 보는 방법

Linux의 프로세스가 왜 잠자기 상태입니까? Linux의 프로세스가 왜 잠자기 상태입니까? Mar 20, 2024 pm 02:09 PM

Linux의 프로세스가 왜 잠자기 상태입니까?

See all articles