SQL2008 删除堵塞进程 sp_who

本文介绍了如何在SQL Server 2008中查看和删除阻塞进程。通过执行`sp_who`存储过程,可以列出当前所有进程、特定用户的进程以及活动进程。针对阻塞问题,可以使用`kill`命令来终止指定的进程ID,从而解除阻塞。同时,`sp_who`返回的信息包括SPID、状态、登录名、主机名、阻塞情况、数据库名、执行命令等,帮助管理员诊断和解决问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.列出全部当前进程

use master

go

exec sp_who

go


2.列出特定用户的进程

use master

go

exec sp_who 'sa'


3.显示所有活动进程:

use master

go

exec sp_who 'active'


4,显示会话ID标识的特定进程

use master

go

exec sp_who '10'


5.删除阻塞的进程

use master

go

kill 10   // blk列

go


6.sp_who返回包括以下信息的结果集。


spid: smallint   回话ID

ecid:smallint    与特定会话ID相关联的给定线程的执行上下文ID。ECID={0,1,2,3,....n},其中0始终表示主或父线程,并且{1,2,3..n}表示子线程。

statis:nchar(30)  进程状态。

               可有的值:dormant。SQL Server正在重置会话。

                                    running。会话正在运行一个或多个批。

                                                      多个活动的结果集(MARS)启用后,会话可以运行多个批。

                                    background。会话正在运行一个后台任务,例如死锁检测。

                                     rollback。会话具有正在处理的事务回滚。

                                     pending。会话正在等待工作线程变为可用。

                                     runnable。会话的任务再等待获取时间量程时位于计划程序的可运行队列中。

                                     spinloop。会话的任务正在等待调节锁变为可用。

                                     suspended。会话正在等待事件(如I/O)完成。

loginame:nchar(128)  与特定进程相关联的登录名。

hostname:nchar(128) 每个进程的主机或计算机名。

blk:char(5)  如果存在阻塞进程,则是该阻塞进程的会话ID。否则该列为零。

                          当与指定会话ID相关联的事务受到孤立分布式事务的阻塞时,该列将对阻塞孤立事务事务返回-2

dbname:nchar(128) 进程使用的数据库。

cmd:nchar(16)  为该进程执行的数据库引擎命令(Transact-SQL语句、数据库引擎进程等等)。

request_id:int  特定会话中运行的请求的ID。


如果是并行处理,则会为特定的会话ID创建子线程。主线程则以spid=<XXX>和ecid=0表示。其他子线程具有相同的spid=<XXX>,但ecid>0



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值