select
tblSysProcess.cmd
, tblSysProcess.physical_io IOUsage
, tblSysProcess.cpu as CPUusage
, tblSysProcess.waittype as waitType
, tblSysProcess.waittime as waitTime
, tblSysProcess.lastwaittype as lastWaitType
, tblSysProcess.waitResource as waitResource
, tblSysProcess.dbid as databaseID
, case
when (dbid > 0) then db_name(dbid)
else ''
end as dbName
, memusage as memUsage
, status
from master.dbo.sysprocesses tblSysProcess
where
(
--background process
(tblSysProcess.spid < 50)
)
5条答案
按热度按时间c8ib6hqw1#
我有一个后台进程正在运行,它可以在任务管理器中看到,而它的运行。我需要从我的数据库检查,该进程是否正在运行
我希望你说的是后台SQL Server进程。下面的查询只显示与SQL Server相关的信息
通过查询DMV可以看到SQL Server上运行的所有进程
您可以在线阅读有关这些DMV文档的书籍
ckx4rj1h2#
use this query
zd287kbt3#
vnzz0bqm4#
看起来你并不是想看到一个SQL服务器进程,而是另一个应用程序的另一个进程,内置的DMV或函数都不能显示这些信息。你有两个选择,一个是写一个CLR存储的proc或函数来检查进程,另一个是使用xp_cmdshell来获取任务列表,你可以这样做:
这将列出计算机上所有正在运行的进程,如果需要,您可以将这些数据推到一个表中以便进一步分析,或者您可以使用tasklist.exe参数来查找您感兴趣的进程。只要记住在不需要xp_cmdshell时关闭它,因为它可能会带来安全风险。
nue99wik5#
试试这个