SQL会缓存大量的数据页面,他还会缓存很多其他信息,包括存储过程的执行计划 ,特定用户的安全上下文等
如果这些信息没有在数据库中缓存,SQL都要重新计算一遍,花额外的时间,所以SQLSERVER对内存的需求是十分强烈的。
配置:
(1)如果服务器支持64位操作系统,没有特殊理由的话,请安装64位系统。这样SQL能够有效地使用 大于2GB的内存。如果一定要用32位系统,务必将SQLSERVER服务器属性里面的“使用AWE分配内存”打开。但是不要用boot.ini文件里的/3GB这个开关,即不要在boot.ini文件里加上/3GB这个参数。
(2)尽量使服务器专门供数据库使用,不要将其他服务(例如IIS,中间层应用服务等)安装在同一台机器上。多个生产应用服务在同一台机器上运行,会大大增加维护成本
(3)建议设置SQLSERVER max server memory(最大服务器内存),以确保Windows有足够的内存供系统本身使用。
情况归纳如下:
一台4GB机器,建议预留1GB,设置SQLSERVER max server memory为2.8GB
一台8GB机器,建议预留2GB,设置SQLSERVER max server memory为6GB
一台大于8GB的64位机器,建议预留3GB~4GB
如果一台服务器上还有其他应用使用内存,也要扣除他们的内存使用数
一般设置SQLSERVER min server memory(最小服务器内存)意义不大
(4)如果是企业版SQLSERVER,建议赋给SQLSERVER启动帐号lock page in memory的权限
设置方法如下:
打开组策略(运行 ,输入gpedit.msc)-》找到计算机配置-》Windows设置-》安全设置-》本地策略-》用户权限分配-》锁定内存页
在锁定内存页上右键,打开锁定内存页属性,添加SQLSERVER启动帐号进去
(5)“set working set size” 这个SQLSERVER参数在现在的Windows上不能起到固定SQL物理内存的作用,所以请永远不要使用
修改完配置之后需要重启SQLSERVER服务才能生效!!!!!
除了配置之外还有一些应对内存错误的其他一些建议:
升级Windows2003到SP2,或者使用Windows2008 ,这些版本的Windows的内存管理机制有了调整
升级硬件驱动程序,或者联系微软技术服务,帮忙检查是不是硬件方面问题引起
步骤如下:点击Start >Run
键入WINMSD。
选择Memory选项。
记录下来计算的一个内存值物理存储器(k) SQL数据库的。
初始化SQL企业管理器。
选择为存储器分配将配置的数据库。
用鼠标右键单击在数据库并且选择配置。Server Configuration Options窗口打开。
选择Configuration选项。
移下来对内存行。有三列:“最低、最大数量、运行和当前内存分配”。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)