欢迎来到.net学习网

欢迎联系站长一起更新本网站!QQ:879621940

您当前所在位置:首页 » SQLServer教程 » 正文

热门阅读

利用SQL语句查询SQL中所有正在执行的命令

创建时间:2011年10月08日 09:52  阅读次数:(10486)
分享到:
在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
来源:.net学习网
说明:所有来源为 .net学习网的文章均为原创,如有转载,请在转载处标注本页地址,谢谢!
【编辑:Wyf

打赏

取消

感谢您的支持,我会做的更好!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

最新评论

共有评论0条
  • 暂无任何评论,请留下您对本文章的看法,共同参入讨论!
发表评论:
留言人:
内  容:
请输入问题 31+21=? 的结果(结果是:52)
结  果: