如何管理sql server的内存使用?

时间:2012-06-08 09:32:38

标签: sql-server sql-server-2008

我有一个sql srever 2008实例,一个开发服务器。所有开发人员在不同数据库上的服务器上同时工作。 RAM的内存使用量超过2GB,服务器的总RAM为4GB。 sys.sysprocesses列表中没有阻塞的进程。总和(memusage)只有190并且当前进程总连接,即count(*)是来自sys.sysprocesses的111。我已经配置了一个powershell脚本,它在进程sql server上提供超过2000 MB的警报。我一直在警惕。我没有找到任何解决方案,在这种情况下该怎么做。

我在总和(memusage)= 190和RAM使用2000 + MB时感到困惑。其余的进程在哪里消耗RAM。

请帮帮我。

谢谢

Nitesh Kumar

1 个答案:

答案 0 :(得分:3)

签入服务器属性窗口的内存窗格(在 Server Management Studio 中,右键单击中的数据库服务器图标对象资源管理器并选择属性)最大服务器内存的值。我们发现分配略少于机器总内存的效果很好。

略小于总内存,因为我们不希望操作系统被强制进入虚拟内存。

SQL Server将根据需要占用尽可能多的内存,达到此限制。将此限制为物理内存量会强制SQL Server优化查询以使用tempdb而不是使用虚拟内存。我们发现这更好。

如果SQL Server没有使用所有内存,那么它可能根本不需要它。这是我们对部分服务器的体验。瓶颈可能在其他地方 - 可能是盘IO ---所以接下来的步骤是开始了解正在运行的查询以及为什么它们会变慢......