优化SQLServer服务器内存配置

一、有关内存的基本概念
  1/物理内存与虚拟内存

  WindowsNT使用两类内存:物理内存与虚拟内存。

  物理内存:作为RAM芯片安装在计算机内部的存储器。

  虚拟内存:用于模拟RAM芯片功能的磁盘(硬盘)空间,其实质是通过将内存中当前没有使

用的部分内容临时存储到磁盘上,使系统可以使用到比机器物理内存更多的内存。
  2/分页和分页文件

  WindowsNT系统通过使用磁盘空间使得对内存的需求得到部分缓解,从而使用到比物理内

存更多内存的技术就称为交换或分页,也就是通常所说的虚拟内存技术。通常Windows
NT 4.0
系统安装时将在引导驱动器上设置一个大小为16MB的交换(分页)文件(pagefile.sys)

  二、优化Windows NT 4.0系统内存配置
  在大多数情况下,为了充分发挥Windows NT 4.0系统效能,内存的作用比起处理器的处理

能力更具有影响力,特别是在客户/服务器模式环境下更是如此,因为通常在这种环境下并不
十分强调处理器的能力,相反却十分注重是否采用足够的内存来满足各个客户的应用需要。此
外,为了获得容错功能和保护应用程序,保证应用程序高速运行、充分发挥设计功能都需要有
足够多的内存,特别是工业绘图设计和各种工程应用程序更需要占用大量的内存来进行复杂的
  物理内存(RAM)方便快速的优点显而易见,但由于其价格昂贵,也就不可能做到多多益善
了,因此通过合理优化内存配置、扩充虚拟内存提高计算机运算速度也就成了一项很重要的应
用技术手段。   1?保证Windows NT系统基本内存需求
  Windows NT 4.0系统至小应配置12MB内存,16MB内存基本够用,正常情况下保证NT系统有

32MB
内存就可以了,因为并不是所有的16MB基本内存在任何时候都被同时使用。如果添加一些
  (1)添加网络服务需要4MB内存空间;
  (2)容错功能和系统保护功能需要8MB内存(如磁盘镜像和分条功能)

  (3)进行图形图象处理需要增加16MB内存空间;

  (4)安装VCVB开发系统需要增加16MB内存空间;

  另外,如在Windows NT上构建大型数据库如SYBASEMicrosoft SQL Server等,对内存的

  2?优化内存性能
  为了使WindowsNT不至于过分占用较多的内存或者浪费处理器的时间用于换页,可以采用

  (1)减少显示颜色的数量;
  (2)降低显示分辨率;

  (3)尽可能不使用或使用位宽度较小的墙纸;

  (4)关闭不需要的服务程序或驱动程序,尽量不要在服务器上使用其它应用程序。

  停用服务或驱动程序的操作步骤如下:

  确定需要停用的服务或驱动程序的名称;

  从控制面板中双击服务或设备图标;

  在列表中选择想要停用的服务或设备驱动程序的名称,单击停止按钮,这时出现确

  选择是确认操作,然后关闭对话框完成设置。
  3?优化虚拟内存

  在对Windows NT虚拟内存进行设置时需要合理确定各个驱动器分页文件的起始大小和

最大值两个参数,它们用于指定分页文件的起始空间和最大空间。下面对这两个参数作一
  起始大小:指初始创建该分页文件时的文件大小,单位为MB,根据缺省设置,这个值被设
  最大值:指出该分页文件的最大尺寸,单位为MB
  (1)分页文件的设置原则:

  分页文件起始大小应保留缺省设置,一般情况下请不要改动;

  分页文件理想的最大尺寸为系统物理内存尺寸的2.5倍至4倍。需要说明的是:如果系统

工作时不需要大量内存,请选择靠近下限的值,即用系统物理内存的2.5倍作为这个尺寸的起
始值;如果系统工作时需要大量内存,请选择靠近上限的值。
  

  (2)Windows NT虚拟内存设置步骤:

  从控制面板中双击系统图标;

  在系统特性对话框中单击性能标签;

  在虚拟内存对话框中单击更改按钮,这时出现虚拟内存对话框,上端的驱动器

  在驱动器列表中,选择需要设置分页文件的驱动器盘符,在驱动器页面文件大小对
话框中列出了起始大小和最大值两个参数栏,填入按照上面的原则确定的数值;
  单击设置确认以上操作,然后依次单击确定按钮退出各个对话框,完成设置。

  (3)Win9598虚拟内存设置。
  Win9598虚拟内存设置方法、步骤和原则与Windows NT 4.0的设置大致相同,请参照上

  4?注意事项
  (1)合理确定分页文件的最大值,根据系统需求随时进行调整,使用过多虚拟内存将导致

整个系统处理性能的下降。设置虚拟内存最大值的目的是使用户不必在WindowsNT的交换文件
上消耗过多的磁盘空间,通常情况下如果超过了系统需要的最佳值后,生成交换文件的磁盘空
  (2)尽可能设立专用硬盘配置内存交换区,或将交换空间放到主硬盘的另一个分区,同时
应将主硬盘的交换文件大小降至16MB,这样主硬盘(分区)仅用来放置操作系统和应用程序,就
可以减少交换次数,防止频繁交换耗费大量CPU时间。
  (3)虚拟内存技术的确改善了Windows NT系统的性能,但也受到机器硬盘空间大小、硬盘

速度、处理器(CPU)速度的影响,从理想角度出发,要提高计算机的性能就必须减少交换操作
的次数,但是没有一个WindowsNT计算机不发生交换,这就要求计算机要有足够的物理内存,
  三、优化Microsoft SQL Server数据库内存配置
  内存是影响Microsoft SQL Server系统性能的一个重要因素,SQL Server数据库安装时将

为具有32MB物理内存的机器缺省配置16MB可用内存,16MB物理内存的机器缺省配置4MB可用内
存。应在Microsoft SQL Server数据库安装后进行内存选项(Memory)设置,最大配置值为2GB
  为了确定SQL Server系统最适宜的内存需求,可以从总的物理内存中减去
Windows NT4.0
需要的内存以及其它一些内存需求后综合确定,理想的情况是给SQL Server分配尽可能多的内

  1?根据物理内存合理规划SQL Server可用内存
  在大多数的生产环境中,服务器配备的物理内存是64MB128MB,偶尔也有256MB的,只要

配置恰当是完全可以满足SQL Server的内存需求的。下表是笔者关于SQL Server内存分配的建
  物理内存 分配给SQL Server 设置值(单位:2KB)
  
8MB 4MB 2048
  
16MB 8MB 4096
  32MB 1618MB 8192
9216
  48MB 2834MB 14336
17408
  64MB 4046MB 20480
23552
  128MB 100108MB 51200
55296
  256MB 216226MB 110592
115712
  512MB 464472MB 237568
241664
  

  以下是SQL Server内存选项(Memory)设置方法

  (1)Microsoft SQL Server程序集中启动SQL Enterprise Manager

  (2)Server Manager窗口中选择Server菜单选项;

  (3)Server菜单中选择Configurations选项;

  (4)Server Configuration对话框中选择Configuration标签,
Configuration
  (5)选中Memory项目,在Current栏填入新值;

  (6)停止并重新启动SQLServer服务,使设置生效。

  2?合理扩充虚拟内存、增大SQL Server可用内存

  当SQL Server系统确实需要扩大可用内存时,应在磁盘空间充足的情况下扩充供虚拟内存

,并相应增大SQL Server可用内存。具体做法是,系统管理员首先扩充服务器的虚拟内存,然
后再参考上表增大SQL Server可用内存,关键是要根据系统的负载情况综合决定是否扩充内存
  3?使用tempinRAM
  SQL Server使用tempdb临时数据库作为一些查询连接操作时排序或创建临时表的工作空间

。将tempdb创建在RAM中可以使系统操作性能有较大提高,而且因为tempdb在每次重启动服务
器时都重建,这样即使有非正常的关闭也是较为安全的,例如停电故障。要将tempdb创建在
RAM
中,可以使用sp_configure进行设置,具体用法请参阅有关资料。
  由于tempdbinRAM使用的内存是由系统从内存体单独分配的,与SQL Server的内存选项设

置的可用内存池是分开的,使用tempdbin RAM将减少整个系统的可用内存,应根据SQL Server
和服务器运行情况进行配置,否则就可能适得其反,影响系统性能。另外,适当增加tempdb

据库空间,即使不使用tempdbin RAM,也可以提高数据库的运行速度。
  4?注意事项

  (1)建议在生产环境中SQL Server不要设置小于32MB内存,而且数据库服务器上尽量不要

  (2)扩充供虚拟内存、增大SQL Server可用内存,应考虑物理内存使用状况和磁盘空间许
  (3)在可能的情况下,要为系统留有部分额外的内存,这样在服务器上打开一个服务或添
加一个进程且不改变SQL Server内存配置时,不致于使NT服务器的运行速度受到影响(变得很
),一般认为最小为2MB最大为20MB
  四、巧用内存配置,解决统计服务器问题

  一单位的统计服务器投入使用后,运行速度较慢,经排查原因,发现SQLServer中的内存

选项(Memory)仅为安装缺省值??16MB(而服务器有128MB的物理内存),在将内存值调整为
100MB
时却误将其改成了1000MB,使得SQL Server服务不能启动,统计数据库打不开,也就不
能再次进入SQL Enterprise Manager修改内存设置了。由于近期未备份业务数据,不到万不得
已不能重装SQLServer数据库,就试图用命令行参数命令来重新启动SQL Server服务,但均不
能奏效,陷入了困境。我们经过仔细分析提出:既然SQL Server可用内存设置值远远大于物理
内存,造成SQLServer服务不能启动,何不扩充虚拟内存呢?经设法将机器虚拟内存扩充至
1000MB
并重新启动,SQL Server数据库成功启动,问题迎刃而解。

你可能感兴趣的:(DataBase)