2009-08-17 50 views
22

我正在调试我的一个应用程序,并注意到我的SQL Server 2005 x64框(在Windows 2003 R2 x64上运行)上的RAM被挂起,甚至进入分页文件。我知道SQL Server 2005 x64只是抓住了一切,所以这可能是正常的(???)。我如何检查它实际使用的内存量?SQL Server实际使用多少内存?

+1

这不是一个ServerFault问题吗? – 2009-08-17 18:53:32

+0

select * from sys.dm_os_process_memory – user1005462 2016-07-08 11:55:04

回答

22

您需要运行Perfmon(开始 - >控制面板 - >管理工具 - >性能)。你想要的计数器,我相信,是在SQL Server:内存管理器。目标服务器内存是多少,如果需要可以采取,总服务器内存是目前使用多少。如果你点击解释,它会弹出一个包含详细信息的框。

默认情况下,它是不封顶的,并应使用所有,但几个GB的内存(离开,对于OS)。但是,有各种各样的错误和内存泄漏可能导致它进入分页。

+0

你指的是什么错误? SQL可能需要分页的原因有很多,一个是如果服务器缺少物理内存(RAM)。如果没有可用的RAM,SQL只能使用该磁盘。 – 2012-01-18 21:34:40

+0

dbcc memorystatus – 2013-01-31 14:51:49

+1

所有这些对我来说都是显示一个连续不断的'100',这是不可能的。 – 2014-12-10 00:58:35

-4
  1. 开始 - >运行 - >性能监视器
  2. 看柜台的不计其数的SQL Server安装
+8

downvote,因为有太多与计算机无关的sql perf计数器,并且看着“无穷无尽”无法回答这个问题。 – Brian 2011-07-22 21:01:05

+0

这仍然是一个很好的提示。 – Mariusz 2015-10-05 12:13:49

2

您应该探索的SQL Server \内存管理器性能计数器。

9

关系到你的问题,你可能要考虑限制,如果你是在一个共享的环境中使用,即,承载的不仅仅是SQL Server的更多的服务器上RAM的SQL Server量访问:

  1. 开始>所有程序> Microsoft SQL Server 2005:SQL Server Management Studio。
  2. 使用任何具有管理权限的帐户进行连接。
  3. 右键单击数据库>属性。
  4. 从左侧窗格中选择“内存”,然后将“服务器内存选项”更改为您感觉应该分配给SQL Server的任何内容。

这将有助于从消耗服务器上所有的RAM缓解的SQL Server。

0

转到管理工作室和运行sp_helpdb <db_name>,它会给指定数据库详细的磁盘使用情况。不带任何参数值运行它将列出实例中所有数据库的高级信息。

+2

问题是关于内存(RAM)使用情况,而不是磁盘使用情况。 – Mike 2015-02-12 04:18:23

-2

最简单的方法,看看内存的使用,如果您有RDP访问/控制台访问将只需启动任务管理器 - 点击流程 - 显示进程从所有用户中,排序RAM - 这会给你SQL的使用。

正如上面提到的,以减少大小(这将立即生效,无需重新启动)启动SQL Management Studio中,单击服务器,属性 - 内存和减小max。没有完美的数字,但要确保服务器有免费的其他任务。

约perfmon的答案是正确的,应当使用,但它们都不如任务管理器恕我直言为明显的方法。

+0

这不起作用..它显示300 Mb,但如果重新启动SQL服务器,我得到8GB更多的空闲内存 – Peter 2011-11-23 16:23:09

+0

您是否有CLR例程?那些可以使用ram并在sql停止时释放。 – 2012-07-15 07:15:51

+0

不,我们没有使用clr例程.. – Peter 2012-07-15 10:13:06