日期:2014-05-18  浏览次数:20464 次

【100分,不够再加】SqlServer 2005 的内存问题
很郁闷的问题

我以前有一台DB服务器,用的是2000,4G的内存,但是发现SQLSERVER只占用1.7G,数据库负载非常大,但是占用内存就是不肯涨

现在换了2005,郁闷的是还是1.7G,负载更大了,但是还是1.7G

是不是SQLSERVER就那么1.7G的内存可以利用,请大虾支招

------解决方案--------------------
--以下配置最大服务器内存为3G
sp_configure 'show advanced options ', 1
RECONFIGURE
GO
sp_configure 'awe enabled ', 1
RECONFIGURE
GO
sp_configure 'max server memory ', 3072
RECONFIGURE
GO

------解决方案--------------------
当 SQL Server 动态使用内存时,它会定期查询系统以确定可用物理内存量。在 Microsoft Windows 2000 中,SQL Server 根据服务器的活动来增大或收缩缓冲区高速缓存。
如果可用内存较少,则 SQL Server 将内存释放给 Windows 2000。如果可用内存较多,则 SQL Server 将内存分配给缓冲池。SQL Server 仅在其工作负荷需要较多内存时才向缓冲池增加内存

你应该看看tempdb这个库的情况,是不是你的临时库无法增长了限制了SQL Server 的使用,这个时候可能SQL Server 并不需要继续增加内存

你的问题应该不是手动配置服务器内存,
因为 'max server memory '选项的默认值是2147483647,这可是非常大的数字,通常都不会去动的

------解决方案--------------------
应该手动配置服务器,因为默认的实例,只能利用2G内存,尽管你有4G内存。

如果可以,设置内存为3G,这样启动的话,直接就用了3G内存
------解决方案--------------------
1. 计算机的启动参数加 /3G(或者/PAE)

2. 将sql server的AWE选项打开

有关这些的说明, 请参考 sql 2005 联机丛书上 AWE 相关的主题(在联机丛书的索引中输入 AWE)