介绍
在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代码。同时,我们还需要注意一些注意事项,如需要管理员权限、不能查看历史执行记录等等。