SQL Server 在线进程分析处理

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

原文地址:https://www.cnblogs.com/syforacle/p/5824769.html