农业银行总行年以来正式推广了新版网络版综合业务统计信息系统该系统是基于WindowsNT平台采用客户/服务器模式以Microsoft SQL Server为基础建立起来的大型数据库应用程序系统界面友好操作简便计算分析检索功能非常强大为保证农业银行系统及时进行纵向和横向业务数据采集按照不同要求生成统计报表进行全面业务活动分析提供了强有力的保障但在这套程序的推广维护中笔者发现系统有时运行速度较慢特别是在Win客户端操作时尤为严重经过排除网线连接等硬件可能带来的影响后上述问题仍然存在笔者经过仔细摸索发现系统对硬软件的要求较高为充分发挥设计效能达到最佳运作效果需要对计算机硬软件系统进行较为完备的性能测试与最佳配置特别是内存配置的好坏对系统的运行速度具有决定性的作用下面笔者就如何优化SQLServer数据库服务器的内存配置提出一些认识和看法
一有关内存的基本概念
物理内存与虚拟内存
WindowsNT使用两类内存物理内存与虚拟内存
物理内存作为RAM芯片安装在计算机内部的存储器
虚拟内存用于模拟RAM芯片功能的磁盘(硬盘)空间其实质是通过将内存中当前没有使用的部分内容临时存储到磁盘上使系统可以使用到比机器物理内存更多的内存
分页和分页文件
WindowsNT系统通过使用磁盘空间使得对内存的需求得到部分缓解从而使用到比物理内存更多内存的技术就称为交换或分页也就是通常所说的虚拟内存技术通常Windows NT 系统安装时将在引导驱动器上设置一个大小为MB的交换(分页)文件(pagefilesys)
二优化Windows NT 系统内存配置
在大多数情况下为了充分发挥Windows NT 系统效能内存的作用比起处理器的处理能力更具有影响力特别是在客户/服务器模式环境下更是如此因为通常在这种环境下并不十分强调处理器的能力相反却十分注重是否采用足够的内存来满足各个客户的应用需要此外为了获得容错功能和保护应用程序保证应用程序高速运行充分发挥设计功能都需要有足够多的内存特别是工业绘图设计和各种工程应用程序更需要占用大量的内存来进行复杂的计算
物理内存(RAM)方便快速的优点显而易见但由于其价格昂贵也就不可能做到多多益善了因此通过合理优化内存配置扩充虚拟内存提高计算机运算速度也就成了一项很重要的应用技术手段
保证Windows NT系统基本内存需求
Windows NT 系统至小应配置MB内存MB内存基本够用正常情况下保证NT系统有MB内存就可以了因为并不是所有的MB基本内存在任何时候都被同时使用如果添加一些服务和应用程序则对内存的需求就会急剧增大如
()添加网络服务需要MB内存空间
()容错功能和系统保护功能需要MB内存(如磁盘镜像和分条功能)
()进行图形图象处理需要增加MB内存空间
()安装VCVB开发系统需要增加MB内存空间
另外如在Windows NT上构建大型数据库如SYBASEMicrosoft SQL Server等对内存的需求就更多了
优化内存性能
为了使WindowsNT不至于过分占用较多的内存或者浪费处理器的时间用于换页可以采用以下方法优化内存性能
()减少显示颜色的数量
()降低显示分辨率
()尽可能不使用或使用位宽度较小的墙纸
()关闭不需要的服务程序或驱动程序尽量不要在服务器上使用其它应用程序
停用服务或驱动程序的操作步骤如下
①确定需要停用的服务或驱动程序的名称
②从控制面板中双击服务或设备图标
③在列表中选择想要停用的服务或设备驱动程序的名称单击停止按钮这时出现确认操作对话框
④选择是确认操作然后关闭对话框完成设置
优化虚拟内存
在对Windows NT虚拟内存进行设置时需要合理确定各个驱动器分页文件的起始大小和最大值两个参数它们用于指定分页文件的起始空间和最大空间下面对这两个参数作一些解释
起始大小指初始创建该分页文件时的文件大小单位为MB根据缺省设置这个值被设置为系统中的物理内存的大小
最大值指出该分页文件的最大尺寸单位为MB
()分页文件的设置原则
①分页文件起始大小应保留缺省设置一般情况下请不要改动
②分页文件理想的最大尺寸为系统物理内存尺寸的倍至倍需要说明的是如果系统工作时不需要大量内存请选择靠近下限的值即用系统物理内存的倍作为这个尺寸的起始值如果系统工作时需要大量内存请选择靠近上限的值
()Windows NT虚拟内存设置步骤
①从控制面板中双击系统图标
②在系统特性对话框中单击性能标签
③在虚拟内存对话框中单击更改按钮这时出现虚拟内存对话框上端的驱动器框逐一列出了 Windows NT所有页面文件的大小
④在驱动器列表中选择需要设置分页文件的驱动器盘符在驱动器页面文件大小对话框中列出了 起始大小和最大值两个参数栏填入按照上面的原则确定的数值
⑤单击设置确认以上操作然后依次单击确定按钮退出各个对话框完成设置
()Win/虚拟内存设置
Win/虚拟内存设置方法步骤和原则与Windows NT 的设置大致相同请参照上面Windows NT的设置
注意事项
()合理确定分页文件的最大值根据系统需求随时进行调整使用过多虚拟内存将导致整个系统处理性能的下降设置虚拟内存最大值的目的是使用户不必在WindowsNT的交换文件上消耗过多的磁盘空间通常情况下如果超过了系统需要的最佳值后生成交换文件的磁盘空间就被浪费了
()尽可能设立专用硬盘配置内存交换区或将交换空间放到主硬盘的另一个分区同时应将主硬盘的交换文件大小降至MB这样主硬盘(分区)仅用来放置操作系统和应用程序就可以减少交换次数防止频繁交换耗费大量 CPU时间
()虚拟内存技术的确改善了Windows NT系统的性能但也受到机器硬盘空间大小硬盘速度处理器 (CPU)速度的影响从理想角度出发要提高计算机的性能就必须减少交换操作的次数但是没有一个WindowsNT计算机不发生交换这就要求计算机要有足够的物理内存以保持最少的交换操作
三优化Microsoft SQL Server数据库内存配置
内存是影响Microsoft SQL Server系统性能的一个重要因素SQL Server数据库安装时将为具有MB物理内存的机器缺省配置MB可用内存MB物理内存的机器缺省配置MB可用内存应在Microsoft SQL Server数据库安装后进行内存选项(Memory)设置最大配置值为GB
为了确定SQL Server系统最适宜的内存需求可以从总的物理内存中减去Windows NT需要的内存以及其它一些内存需求后综合确定理想的情况是给SQL Server分配尽可能多的内存而不产生页面调度
根据物理内存合理规划SQL Server可用内存
在大多数的生产环境中服务器配备的物理内存是MB~MB偶尔也有MB的只要配置恰当是完全可以满足SQL Server的内存需求的下表是笔者关于SQL Server内存分配的建议规划供参考
物理内存 分配给SQL Server 设置值(单位KB)
MB MB
MB MB
MB ~MB ~
MB ~MB ~
MB ~MB ~
MB ~MB ~
MB ~MB ~
MB ~MB ~
以下是SQL Server内存选项(Memory)设置方法
()从Microsoft SQL Server程序集中启动SQL Enterprise Manager
()从Server Manager窗口中选择Server菜单选项
()在Server菜单中选择Configurations选项
()在Server Configuration对话框中选择Configuration标签Configuration窗口显示配置选项列表
()选中Memory项目在Current栏填入新值
()停止并重新启动SQLServer服务使设置生效
合理扩充虚拟内存增大SQL Server可用内存
当SQL Server系统确实需要扩大可用内存时应在磁盘空间充足的情况下扩充供虚拟内存并相应增大 SQL Server可用内存具体做法是系统管理员首先扩充服务器的虚拟内存然后再参考上表增大SQL Server可用内存关键是要根据系统的负载情况综合决定是否扩充内存优化配置
使用tempinRAM
SQL Server使用tempdb临时数据库作为一些查询连接操作时排序或创建临时表的工作空间将tempdb创建在RAM中可以使系统操作性能有较大提高而且因为tempdb在每次重启动服务器时都重建这样即使有非正常的关闭也是较为安全的例如停电故障要将tempdb创建在RAM中可以使用sp_configure进行设置具体用法请参阅有关资料
由于tempdbinRAM使用的内存是由系统从内存体单独分配的与SQL Server的内存选项设置的可用内存池是分开的使用tempdbin RAM将减少整个系统的可用内存应根据SQL Server和服务器运行情况进行配置否则就可能适得其反影响系统性能另外适当增加tempdb数据库空间即使不使用temp