0

我一直在尝试制定一个查询来帮助自己识别使用 SQL Server 的资源密集型查询/数据库/用户,但还没有完全搞定。我想构建一个查询,它将为 MySQL 执行“mysqladmin processlist”。

我已经提到了这个相关的问题,但还没有得到我真正需要的东西。我正在使用sp_who,sp_who2和这样的查询:

select master.dbo.sysprocesses.loginame, 
count(master.dbo.sysprocesses.loginame)
from master.dbo.sysprocesses
group by master.dbo.sysprocesses.loginame

问题始终是这些工具之一并没有给我我需要的一切。我的目标是有一个采用这种格式的查询:

LOGIN, DATABASE, QUERY, CPU, MEM, etc.

如果有人知道如何做到这一点,我将不胜感激。如果有人有任何 SQL Server DBA 备忘单,那就太好了。

4

2 回答 2

2

是否必须通过 sproc 调用来完成?SQL Server Management Studio(该链接适用于快速版,但 SQL Server 的完整安装已经拥有它)具有“活动监视器”功能,可以准确列出您想要的内容。

除此之外,

EXECUTE sp_who2

为您提供您所要求的:登录、DBName、命令、CPUTime、DiskIO,都在那里......

如果您想要 SPID 正在执行的确切命令,您可以使用

DBCC INPUTBUFFER(spid)

命令(sp_who2只是告诉你它是否是 DELETE、SELECT 等)

于 2010-07-09T03:29:14.750 回答
1

如果你 bust out sp_who2,你可以提取你感兴趣的字段:

select    
  spid
 ,status 
 ,hostname
 ,program_name
 ,cmd
 ,cpu
 ,physical_io
 ,blocked
 ,dbid
 ,convert(sysname, rtrim(loginame))
        as loginname

      from sys.sysprocesses with (nolock)
      order by cpu desc
于 2010-07-09T02:05:01.437 回答