SQL Server 实际使用了多少 RAM? [关闭]
Posted
技术标签:
【中文标题】SQL Server 实际使用了多少 RAM? [关闭]【英文标题】:How much RAM is SQL Server actually using? [closed] 【发布时间】:2010-11-20 08:19:14 【问题描述】:我正在调试我的一个应用程序,并注意到我的 SQL Server 2005 x64 机器(在 Windows 2003 R2 x64 上运行)上的 RAM 被固定,甚至进入了页面文件。
我知道 SQL Server 2005 x64 只是抓住了它所能做的一切,所以这可能是正常的 (???)。如何检查它实际使用了多少内存?
【问题讨论】:
您应该探索 SQL Server\Memory Manager 性能计数器。 这不是 ServerFault 问题吗? 从 sys.dm_os_process_memory 中选择 * 【参考方案1】:您需要运行 Perfmon(开始->控制面板->管理工具->性能)。我相信你想要的计数器在 SQL Server:Memory Manager 中。目标服务器内存是在需要时允许占用的内存量,总服务器内存是它当前使用的内存量。如果您单击“解释”,它会弹出一个包含详细信息的框。
默认情况下它是无上限的,并且应该使用除几 GB 内存之外的所有内存(它将内存留给操作系统)。但是,有各种错误和内存泄漏可能导致它进入分页。
【讨论】:
你指的是什么错误? SQL 可能需要分页的合理原因有很多,其中之一是服务器缺少物理内存 (RAM)。如果没有可用的 RAM,SQL 只能使用磁盘。 这对我来说只是显示一个连续“100”的图表,这是不可能的。 Vasili,将图表类型更改为“报告”【参考方案2】:与您的问题相关,如果您在共享环境中使用 SQL Server 可以访问的 RAM 数量,您可能需要考虑限制,即在托管的不仅仅是 SQL Server 的服务器上:
-
开始 > 所有程序 > Microsoft SQL Server 2005:SQL Server Management Studio。
使用任何具有管理员权限的帐户进行连接。
右键单击数据库 > 属性。
从左侧窗格中选择“内存”,然后将“服务器内存选项”更改为您认为应该分配给 SQL Server 的任何内容。
这将有助于减轻 SQL Server 消耗所有服务器的 RAM。
【讨论】:
【参考方案3】:请注意,总服务器内存并不是 SQL Server 当前使用的内存量。
请参阅这篇 Microsoft 文章: http://msdn.microsoft.com/en-us/library/ms190924.aspx
【讨论】:
我应该查看哪些计数器?【参考方案4】:进入管理工作室并运行sp_helpdb <db_name>
,它将给出指定数据库的详细磁盘使用情况。在没有任何参数值的情况下运行它会列出实例中所有数据库的高级信息。
【讨论】:
问题是关于内存 (RAM) 使用情况,而不是磁盘使用情况。【参考方案5】:如果您有 RDP 访问/控制台访问权限,查看 ram 使用情况的最简单方法是启动任务管理器 - 单击进程 - 显示所有用户的进程,按 RAM 排序 - 这将为您提供 SQL 的使用情况。
如上所述,要减小大小(将立即生效,无需重新启动)启动 sql management studio,单击服务器,属性 - 内存并减小最大值。没有完全完美的数字,但请确保服务器有空闲内存用于其他任务。
关于 perfmon 的答案是正确的,应该使用,但它们不像任务管理器恕我直言那样明显。
【讨论】:
这不起作用..它显示 300 Mb 但如果重新启动 SQL 服务器,我将获得 8gb 更多可用内存 你可能有 CLR 例程吗?那些可以使用 ram 并在 sql 停止时被释放。 不,我们没有使用 clr 例程.. 任务管理器中用于 sqlservr.exe 的 mwmory 用法通常是一个谎言 - 请参阅 brentozar.com/archive/2011/09/…【参考方案6】:-
开始 -> 运行 -> perfmon
查看 SQL Server 安装的无数计数器
【讨论】:
投反对票,因为有太多与内存无关的 sql 性能计数器,而查看“数不胜数”并不能帮助回答问题。 这仍然是一个很好的提示。以上是关于SQL Server 实际使用了多少 RAM? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章
升级 RAM 是不是会自动增加对 SQL Server 的分配?