SQL Server 在线进程分析处理

时间:2021-07-24 17:54:51

SQL Server 在线进程分析处理

前言

数据库在线进程处理在很多时候需要人为干预已达到预期管理目标,下面整理一下常用的在线进程管理方法,便于后续工作使用。

一、查看目标数据库在线进程,并杀死指定进程

  • 检索当前数据库在线进程

SELECT * FROM sys.sysprocesses WHERE dbid=DB_ID('AdventureWorks')

  • 杀掉指定进程

kill spid

二、删除SQL Server在线用户

  • 查询指定用户的当前在线进程

select spid from sysprocesses where loginame='Login_Name';

  • 杀掉指定进程

kill spid

三、查看当前阻塞并清除

--例如使用master数据库,sa用户进行检索

use master
go
--查看线程,分析blocked 较多的进程,
SELECT * FROM SYSPROCESSES WHERE blocked >0 order by blocked ;

--继续查看进程被谁阻塞,分析导致阻塞的源头
SELECT * FROM SYSPROCESSES WHERE spid =spid_no

--查看此进程执行的SQL 是哪个,查找问题原因
dbcc inputbuffer(spid);

--KILL 掉当前导致阻塞的SQL
kill spid