2012-03-26 109 views
3

我感兴趣的是可以针对SQL Server 2008运行的查询,它可以告诉当前进程(以及运行它们的用户)执行的内存使用情况。任何帮助,将不胜感激。谢谢。SQL Server 2008内存瓶颈

+0

您有完整版本的SQL Server?如果是的话,你可以使用Profiler。 – Ezi 2012-03-26 17:43:29

+0

查看Adam Mechanic出色的[sp_WhoIsActive](http://sqlblog.com/files/folders/beta/entry42453.aspx) – Andomar 2012-03-26 17:45:52

+0

ADmins属于http://dba.stackexchange.com/,我们需要将http://dba.stackexchange.com/添加到地点列表中,以便在您认为该地点不在本地的位置时移动主题。 – HLGEM 2012-03-26 19:41:37

回答

1

你可以尝试这样的事情:

SELECT * 
FROM sys.dm_exec_requests 
    CROSS APPLY sys.dm_exec_sql_text(sql_handle) 

或者,你可能会遇到:

sp_who 

看到所有的用户和进程

但是,正如EZI说,你可以只使用SQL Server Profiler工具并运行跟踪。

4

告诉当前进程

这太普通了,不能回答的内存使用情况。几乎SQL中的所有内存都在'进程'(查询)之间共享,并且不能归因于单个进程。可以清楚地归因于查询的唯一重要的内存消耗是内存授权,并在sys.dm_exec_query_memory_grants中公开。我建议你也读一下Buffer Management