在sql中有时候我们需要查看现在正在sql Server执行的命令。在分析管理器或者Microsoft sql Server Management Studio中,我们可以在"管理-sql Server日志-活动监视器"中查看。今天我们主要利用master..sysprocesses系统表来查看。 先看看sysprocesses系统表的相关信息。 sysprocesses:存放有关在 Microsoft sql Server 实例中运行的进程的信息,这些进程可以是客户端进程或系统进程。 查询示例:
select * from master..sysprocesses
我们看看查询出来的列的含义。 因为该系统表的列数比较多,我们只讲解比较有用的列含义。
spid--sql Server进程的ID。
kpid--Microsoft Windows线程的ID。 dbid--当前正由进程使用的数据库ID。 uid--执行命令的用户ID。如果用户数和角色数超过 32,767,则会溢出或返回 NULL。 cpu--进程的累计占用cpu的时间。 physical_io--进程的累计磁盘读取和写入。 memusage--当前分配给该进程的过程缓存中的页数。一个负数,表示进程正在释放由另一个进程分配的内存。 login_time--客户端进程登录到服务器的时间。对于系统进程,将存储 sql Server的启动时间。 last_batch--客户端进程上次执行远程存储过程调用或EXECUTE语句的时间。对于系统进程,将存储 sql Server 的启动时间。 open_tran--进程的打开事务数。 status--进程ID的状态。例如,运行或者睡眠。 sid--用户的全局唯一标识符 (GUID)。 nt_username--进程的 Windows 用户名(如果使用 Windows 身份验证)或可信连接的 Windows 用户名。 loginame 执行该进程的登录名。 这样,我们就可以查到所有执行命令的进程ID了,如果要查看该进程的具体的sql语句,可以利用以下语句查看: dbcc inputbuffer(进程号) 例如:
dbcc inputbuffer(56)
如果我们要终止(杀死)该进程,可利用以下语句: kill 进程号 例如:
kill 70
|
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。