本文介绍如何查看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 列可识别各连接会话正在执行的操作类型。
该文章对您有帮助吗?