合理配置SQLSERVER内存

SQLSERVER是个很喜欢内存资源的程序,他的理想状态就是把全部可能会用到的数据和结构都缓存在物理内存里,以达到最优的性能。html

虽然这样,可是SQLSERVER会约束本身的内存使用量,不过亲们最好对SQLSERVER的内存使用做出合理的分配数据库

SQLSERVER的内存用在哪里?缓存

SQL会缓存大量的数据页面,他还会缓存不少其余信息,包括存储过程的执行计划 ,特定用户的安全上下文等安全

若是这些信息没有在数据库中缓存,SQL都要从新计算一遍,花额外的时间,因此SQLSERVER对内存的需求是十分强烈的。服务器

配置:性能

(1)若是服务器支持64位操做系统,没有特殊理由的话,请安装64位系统。这样SQL可以有效地使用 大于2GB的内存。若是必定要用32位系统,务必将SQLSERVER服务器属性里面的“使用AWE分配内存”打开。可是不要用boot.ini文件里的/3GB这个开关,即不要在boot.ini文件里加上/3GB这个参数。操作系统

(2)尽可能使服务器专门供数据库使用,不要将其余服务(例如IIS,中间层应用服务等)安装在同一台机器上。多个生产应用服务在同一台机器上运行,会大大增长维护成本server

(3)建议设置SQLSERVER max server memory(最大服务器内存),以确保Windows有足够的内存供系统自己使用。htm

状况概括以下:blog

一台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的内存管理机制有了调整

升级硬件驱动程序,或者联系微软技术服务,帮忙检查是否是硬件方面问题引发

 

原文:https://www.cnblogs.com/lyhabc/archive/2012/09/28/2707857.html

相关文章
相关标签/搜索