合 MSSQL中的KILL SPID命令
Tags: MSSQLSQL Server杀会话kill session
- 介绍 (INTRODUCTION)
- 在SQL SERVER中检查SPID的不同方法 (DIFFERENT WAYS TO CHECK THE SPID IN SQL SERVER)
- 使用SP_WHO2命令: (USING SP_WHO2 COMMAND:)
- 使用动态管理视图: (USING DYNAMIC MANAGEMENT VIEW:)
- 使用活动监视器: (USING ACTIVITY MONITOR:)
- 使用SSMS信息栏: (USING SSMS INFORMATION BAR:)
- @@ SPID全局变量: (THE @@SPID GLOBAL VARIABLE:)
- SQL SERVER中的KILL SPID命令概述 (OVERVIEW OF KILL SPID COMMAND IN SQL SERVER)
- 使用KILL SPID命令消除SQL SERVER中的阻塞 (USE KILL SPID COMMAND TO ELIMINATE BLOCKING IN SQL SERVER )
- 使用KILL SPID命令终止正在运行的数据库备份 (TERMINATE RUNNING DATABASE BACKUP USING A KILL SPID COMMAND)
- 结论 (CONCLUSION)
- 概述
- 语法
- 参数
- 备注
- 使用 WITH STATUSONLY
- 权限
- 示例
- A. 使用 KILL 停止会话
- B. 使用 KILL session ID WITH STATUSONLY 获取进度报告
- C. 使用 KILL 停止孤立的分布式事务
- 参考
This article gives an overview of the KILL SPID command and how to monitor the rollback progress.
本文概述了KILL SPID命令以及如何监视回滚进度。
介绍 (INTRODUCTION)
Once we connect to a SQL Server instance, it assigns a unique identification number to each connection. It is the Server Process ID and commonly known as SPID. SPID 1 to 50 is reserved for SQL Server internal processes, and the user process starts from SPID 51.
一旦连接到SQL Server实例,它将为每个连接分配一个唯一的标识号。 它是服务器进程ID,通常称为SPID。 SPID 1到50保留用于SQL Server内部进程,而用户进程从SPID 51开始。
在SQL SERVER中检查SPID的不同方法 (DIFFERENT WAYS TO CHECK THE SPID IN SQL SERVER)
You can check all processes in SQL Server using the following ways.
您可以使用以下方法检查SQL Server中的所有进程。
使用SP_WHO2命令: (USING SP_WHO2 COMMAND:)
Execute the sp_who2 command, and it lists out all the SPID’s including the system and user processes.
执行sp_who2命令,它列出了所有SPID,包括系统进程和用户进程。
使用动态管理视图: (USING DYNAMIC MANAGEMENT VIEW:)
We can use the DMV sys.dm_exec_sessions to get the session details.
我们可以使用DMV sys.dm_exec_sessions来获取会话详细信息。
1 2 3 4 5 6 | SELECT * FROM sys.dm_exec_sessions; By default, it shows all processes in SQL Server. We might not be interested in the system processes. We can filter the results using the following query. SELECT * FROM sys.dm_exec_sessions WHERE is_user_process = 1; |
使用活动监视器: (USING ACTIVITY MONITOR:)
Connect to a SQL instance in SSMS and, right-click on SQL instance. Launch Activity Monitor. It opens the following Activity Monitor that contains Overview, Processes tabs.
连接到SSMS中SQL实例,然后右键单击SQL实例。 启动活动监视器。 它将打开以下活动监视器,其中包含“概述”,“进程”选项卡。
In the Processes tab, we can view the SP ID and details such as login, database, application, hostname. By default, Activity Monitor displays the User processes as shown in the following image.
在“进程”选项卡中,我们可以查看SP ID和详细信息,例如登录名,数据库,应用程序,主机名。 默认情况下,活动监视器显示用户进程,如下图所示。
If we want to view all SPID’s, set the User Process column value from the drop-down to All (1 – User Process, 0- System process).
如果要查看所有SPID,请从下拉列表中将“用户进程”列值设置为“全部”(1 –用户进程,0 –系统进程)。
使用SSMS信息栏: (USING SSMS INFORMATION BAR:)
Once we open a new session in SSMS, it shows the following information in the information bar.
在SSMS中打开新会话后,它将在信息栏中显示以下信息。
- Connection Status
连接状态 - Instance name in which we are connected
我们连接的实例名称 - User name (SPID). In the following image, we can see that we are connected with Kashish\Test(84). In bracket, it is a SPID. It is 84 in our case
用户名(SPID)。 在下图中,我们可以看到我们已与Kashish \ Test(84)连接。 方括号中是SPID。 在我们的情况下是84@@ SPID全局变量: (THE @@SPID GLOBAL VARIABLE:)
We can use the global variable to know about the session id of the currently connected session. It is useful if we connect to SQL Server using the command line tools such as SQLCMD.
我们可以使用全局变量来了解当前连接的会话的会话ID。 如果我们使用命令行工具(例如SQLCMD)连接到SQL Server,这将非常有用。1SELECT @@SPID AS CurrentSPID;本人提供Oracle(OCP、OCM)、MySQL(OCP)、PostgreSQL(PGCA、PGCE、PGCM)等数据库的培训和考证业务,私聊QQ646634621或微信db_bao,谢谢!