您的位置:首页 > 数据库

让SQL server 2000使用4G以上的内存

2010-12-19 09:18 453 查看
我的ERP服务器有16G内存,安装了Windows Server 2003 32位企业版,安装了SQL Server 2000 SP4企业版。发现SQLServer.exe只使用了1.7G内存。下面设置SQL Server 2000使用10G内存。
1、 修改Boot.ini文件,在最后一行加入参数“/PAE”
[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)/WINDOWS
[operating systems]
multi(0)disk(0)rdisk(0)partition(1)/WINDOWS="Windows Server 2003, Enterprise" /noexecute=optout /fastdetect /PAE
重新启动计算机。
2、 安装SQL Server 2000补丁SQL2000-KB899761-v8.00.2040-x86x64-CHS.exe
如果不安装这个补丁,并且SQL Server 启用了AWE,SQLServer.exe也只能使用系统物理内存的一半,我的服务器16G最多只能使用8G。
原因:发生此问题的原因是,可用缓冲页的总数是基于 SQL 页 (8 KB) 和系统页 (4 KB) 数量的比较结果的,而该比较结果是错误的。在 IA-64 位系统上,由于不执行进行此比较的代码,因此不会发生此问题。
该补丁的下载网址:
http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=7C407047-3F1F-48B8-9E4C-DC32875E1961

3、 启用锁定内存页选项(Windows):
(1)启用锁定内存页选项
(2)在“开始”菜单上单击“运行”子菜单,然后在“打开”框中键入“gpedit.msc”。
(3)在“组策略”控制台上,展开“计算机配置”,然后展开“Windows 设置”。
(4)展开“安全设置”,然后展开“本地策略”。
(5)选择“用户权限分配”复选框。
(6)详细资料窗格中随即显示出策略。
(7)在详细资料窗格中,双击“锁定内存页”。
(8)在“本地安全策略设置”对话框中,单击"添加"按钮。
(9)在“选择用户或组”对话框中,添加有权运行 sqlservr.exe 的帐户。
我这里添加域管理员帐号“cluster”。
4、 开启SQL Server 2000的AWE
检查你的SQLServer 2000有没有开启AWE,请在SQL查询分析器使用下面的语句:
sp_configure 'show advanced options', 1
go
reconfigure
go
sp_configure 'awe enabled'
go

如果 run_value 设置为 1,则服务器上启用了 AWE。
在SQL查询分析器使用下面的语句
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'awe enabled', 1
RECONFIGURE
GO
sp_configure 'max server memory', 10240
RECONFIGURE
GO
5、 重新启动SQL Server服务
开始—运行,输入CMD,依次输入下列命令
Net stop SQLSERVERAGENT
Net stop MSSQLSERVER
Net start MSSQLSERVER
Net start SQLSERVERAGENT
经过上面设置,SQLServer.exe已可以使用10G内存。但是通过“任务管理器”查看进程“SQLServer.exe”只使用了不到100M的内存,这是怎么回事呢?因为这样设置后,任务管理器已无法查看SQLServer.exe具体使用了多少内存,要想查看SQLServer.exe到底使用了多大内存,请执行下面操作:
开始—管理工具—性能—系统监视器,点上面的“+”号,在“性能对象”里选择“SQLServer:内存管理器”,再从列表中选择“总的服务器内存”,点“添加”按钮,点下面的“总的服务器内存”,看“最后”的值就可以了解了。





不明白的,看图片就行了。

可用的 SQL Server 2000 SP4 的 Hotfix 的累積清單

http://support.microsoft.com/kb/894905/zh-tw
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: