ホームページ データベース 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

ビジュアル Web 開発ツール

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