我正在调试我的一个应用程序,并注意到我的 SQL Server 2005 x64 框(在 Windows 2003 R2 x64 上运行)上的 RAM 被固定,甚至进入了页面文件。
我知道 SQL Server 2005 x64 只是抓住了它所能做的一切,所以这可能是正常的(???)。如何检查它实际使用了多少内存?
我正在调试我的一个应用程序,并注意到我的 SQL Server 2005 x64 框(在 Windows 2003 R2 x64 上运行)上的 RAM 被固定,甚至进入了页面文件。
我知道 SQL Server 2005 x64 只是抓住了它所能做的一切,所以这可能是正常的(???)。如何检查它实际使用了多少内存?
您需要运行 Perfmon(开始->控制面板->管理工具->性能)。我相信你想要的计数器在 SQL Server:Memory Manager 中。目标服务器内存是在需要时允许占用的内存量,总服务器内存是它当前使用的内存量。如果您单击“解释”,它将弹出一个包含详细信息的框。
默认情况下,它没有上限,并且应该使用除几 GB 内存之外的所有内存(它将内存留给操作系统)。但是,有各种错误和内存泄漏可能导致它进入分页。
与您的问题相关,如果您在共享环境中使用它,您可能需要考虑限制 SQL Server 可以访问的 RAM 数量,即,在不仅托管 SQL Server 的服务器上:
这将有助于减轻 SQL Server 消耗所有服务器的 RAM。
请注意,总服务器内存不是 SQL Server 当前使用的内存量。
请参阅这篇 Microsoft 文章:http: //msdn.microsoft.com/en-us/library/ms190924.aspx
进入管理工作室并运行sp_helpdb <db_name>
,它将给出指定数据库的详细磁盘使用情况。在没有任何参数值的情况下运行它将列出实例中所有数据库的高级信息。
如果您具有 RDP 访问权限/控制台访问权限,查看 ram 使用情况的最简单方法是启动任务管理器 - 单击进程 - 显示所有用户的进程,按 RAM 排序 - 这将为您提供 SQL 的使用情况。
如上所述,要减小大小(立即生效,无需重新启动)启动 sql management studio,单击服务器,属性 - 内存并减小最大值。没有完全完美的数字,但请确保服务器有空闲的内存用于其他任务。
关于 perfmon 的答案是正确的,应该使用,但它们不像任务管理器恕我直言那样明显。