常用脚本--查看当前锁信息
USE [master] GO /****** Object: StoredProcedure [dbo].[p_lockinfo] Script Date: 02/07/2014 11:54:29 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO ALTER PROC [dbo].[usp_lockinfo] @kill_lock_spid BIT=0, --是否杀掉死锁的进程,1 杀掉, 0 仅显示 @show_spid_if_nolock BIT=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示 AS BEGIN 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(30),b INT,EventInfo NVARCHAR(MAX)) IF @kill_lock_spid=1 BEGIN DECLARE @spid VARCHAR(10),@标志 VARCHAR(10) WHILE @i<=@count 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<=@count 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 END GO --===================================================== --Usage EXEC [master].[dbo].[usp_lockinfo] @kill_lock_spid=0, --是否杀掉死锁的进程,1 杀掉, 0 仅显示 @show_spid_if_nolock=1 --如果没有死锁的进程,是否显示正常进程信息,1 显示,0 不显示
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 25岁的心里话
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现