mssql sql server获取正在运行的进程的方法


一、可以使用sp_who2查看当前运行的进程


sp_who2 可返回以下列信息
Spid (系统进程ID)
status (进程状态)
loginame (用户登录名)
hostname(用户主机名)
blk (阻塞进程的SPID)
dbname (进程正在使用的数据库名)
Cmd (当前正在执行的命令类型)
CPUTime (进程占用的总CPU时间)
DiskIO (进程对磁盘读的总次数)
LastBatch (客户最后一次调用存储过程或者执行查询的时间)
ProgramName (用来初始化连接的应用程序名称,或者主机名)


二、可以通过查询系统进程表 sys.sysprocesses 和 系统执行内容表 sys.dm_exec_sql_text,获取运行进程 的内容信息

 SELECT   spid,
         blocked,
         DB_NAME(sp.dbid) AS DBName,
         program_name as [应用程序名],
         waitresource,
         lastwaittype,
         sp.loginame as [登录名],
         sp.hostname as [客户端名称],
         a.[Text] AS [命令文本],
         SUBSTRING(A.text, sp.stmt_start / 2 
FROM     sys.sysprocesses AS sp OUTER APPLY sys.dm_exec_sql_text (sp.sql_handle) AS A  where a.text is not null 

相关阅读:
如何查询MSSQL 当前进程及数据库中的并发进程