MSSQL查看正在执行的命令记录

介绍

在SVN、Git等版本管理工具中经常会遇到需要查看正在执行的命令记录的情况。在MSSQL Server中,我们也可以轻松地查看正在执行的命令记录。

使用SP_WHO2命令查看当前正在执行的命令

SP_WHO2是一个用于监视正在运行的SQL进程的系统存储过程。

该存储过程可以显示所有正在运行的进程的详细信息,包括进程ID、登录名、CPU使用率、内存使用率、等待时间等等。具体的列信息可以参考下表:(注意:该表格来自于微软官方文档)

列名称 含义
SPID 进程ID
Status 进程状态
Login 登录名
HostName 主机名
BlkBy 阻止当前进程的其他进程ID
DBName 当前正在使用的数据库名称
Command 当前正在执行的命令
CPUTime CPU使用时间
DiskIO 磁盘IO次数
LastBatch 最后一次批处理时间
ProgramName 客户端程序名称
SPID 进程ID
SPID 进程ID

我们可以通过执行以下命令来调用SP_WHO2系统存储过程:

SP_WHO2

执行SP_WHO2存储过程后,我们可以看到所有正在运行的进程信息,类似于如下截图:

使用SPID查看对应的进程信息

在通过SP_WHO2命令查看所有正在执行的进程之后,我们还可以根据具体的进程ID来查看对应的进程信息。

例如,我们想要查看进程ID为55的进程的信息,可以执行以下命令:

DBCC INPUTBUFFER (55)

执行上述命令后,我们可以看到进程ID为55的进程正在执行的SQL代码。如下图所示:

从上图可以看出,进程ID为55的进程正在执行一条SELECT语句。

注意事项

SP_WHO2存储过程可以查看所有正在运行的进程信息,但不能查看历史执行记录,因此如果需要查看历史执行记录,可以考虑其他方法。

此外,由于SP_WHO2存储过程需要访问系统表,因此需要系统管理员权限。

最后,我们需要注意的是,通过SPID查看进程信息时,如果对应的进程已经结束,则会提示“没有发现SPID为xxx的进程”,因此需要确认进程是否正在运行。

结论

本文介绍了如何使用MSSQL Server查看正在执行的命令记录。通过SP_WHO2存储过程可以查看所有正在运行的进程信息,而通过根据进程ID查看进程信息的方法可以查看对应进程正在执行的SQL代码。同时,我们还需要注意一些注意事项,如需要管理员权限、不能查看历史执行记录等等。

数据库标签