RDS SQL Server查看当前连接以及其执行的SQL

更新时间:
复制为 MD 格式

本文介绍如何查看RDS SQL Server当前连接以及其执行的SQL。

通过SYSPROCESSES系统视图查看连接

Master.dbo.SYSPROCESSES视图主要包括正在运行的进程的相关信息。用户可以与Master.dbo.SYSDATABASES系统视图联合查找某个数据库的所有连接。具体SQL如下:

SELECT * FROM
[Master].[dbo].[SYSPROCESSES] WHERE [DBID] IN ( SELECT 
   [DBID]
FROM 
   [Master].[dbo].[SYSDATABASES]
WHERE 
   NAME='<数据库名>'
)

执行上述查询后,返回结果包含 SPID(进程ID)、STATUS(状态,如 runnable、sleeping)、LOGINAME(登录名)、HOSTNAME(主机名)、DBID(数据库ID)、CMD(当前执行的命令)等列。通过这些列可了解各连接的详细信息。

通过sp_who查看连接会话和SQL

命令格式如下:

sp_who   --查看所有的连接会话
sp_who '<用户名>'   --查看某个用户的连接会话

执行 sp_who 后,返回结果包含 SPID(进程ID)、STATUS(状态,如 background、sleeping)、LOGINNAME(登录名)、CMD(当前执行的命令,如 LOG WRITER、RECOVERY WRITER、LAZY WRITER、TASK MANAGER 等系统进程名称)、REQUEST_ID 等列。通过 CMD 列可识别各连接会话正在执行的操作类型。