Rumah pangkalan data tutorial mysql 查看当前进程,或死锁进程,并能自动杀掉死进程_MySQL

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

Jun 01, 2016 pm 02:05 PM
select Semak automatik proses

/*--处理死锁

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

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

--邹建 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

Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn

Tag artikel panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Semak langkah untuk memadam peranti log masuk pada Douyin Semak langkah untuk memadam peranti log masuk pada Douyin Mar 26, 2024 am 09:01 AM

Semak langkah untuk memadam peranti log masuk pada Douyin

Cara menyemak ID anda sendiri di Xianyu_Pengenalan cara menyemak nama panggilan peribadi anda di Xianyu Cara menyemak ID anda sendiri di Xianyu_Pengenalan cara menyemak nama panggilan peribadi anda di Xianyu Mar 22, 2024 am 08:21 AM

Cara menyemak ID anda sendiri di Xianyu_Pengenalan cara menyemak nama panggilan peribadi anda di Xianyu

Di mana untuk menyemak kedudukan muzik pada NetEase Cloud Music_How untuk menyemak kedudukan muzik pada NetEase Cloud Music Di mana untuk menyemak kedudukan muzik pada NetEase Cloud Music_How untuk menyemak kedudukan muzik pada NetEase Cloud Music Mar 25, 2024 am 11:40 AM

Di mana untuk menyemak kedudukan muzik pada NetEase Cloud Music_How untuk menyemak kedudukan muzik pada NetEase Cloud Music

Automount pemacu pada Linux Automount pemacu pada Linux Mar 20, 2024 am 11:30 AM

Automount pemacu pada Linux

Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux Mar 15, 2024 am 08:39 AM

Penjelasan terperinci tentang kaedah pelarasan keutamaan proses Linux

Cara menyemak bilangan kumpulan yang telah anda sertai di WeChat: langkah mudah Cara menyemak bilangan kumpulan yang telah anda sertai di WeChat: langkah mudah Mar 26, 2024 am 10:06 AM

Cara menyemak bilangan kumpulan yang telah anda sertai di WeChat: langkah mudah

Bagaimana untuk melihat senarai hangat video Kuaishou Live Companion Bagaimana untuk melihat senarai hangat video Kuaishou Live Companion Mar 29, 2024 pm 08:09 PM

Bagaimana untuk melihat senarai hangat video Kuaishou Live Companion

Mengapa proses dalam Linux tidur? Mengapa proses dalam Linux tidur? Mar 20, 2024 pm 02:09 PM

Mengapa proses dalam Linux tidur?

See all articles