浅谈优化SQLServer数据库服务器内存配置的策略

引文 http://demo.nbarticle.com/view/2004/8/9/view_1827.htm 
农业银行总行1998年以来正式推广了新版网络版综合业务统计信息系统,该系统是基于WindowsNT4.0平台,采用客户/服务器模式,以Microsoft SQL Server为基础建立起来的大型数据库应用程序,系统界面友好、操作简便,计算、分析、检索功能非常强大,为保证农业银行系统及时进行纵向和横向业务数据采集、按照不同要求生成统计报表,进行全面业务活动分析提供了强有力的保障。但在这套程序的推广、维护中笔者发现系统有时运行速度较慢,特别是在Win95客户端操作时尤为严重,经过排除网线连接等硬件可能带来的影响后上述问题仍然存在。笔者经过仔细摸索,发现系统对硬、软件的要求较高,为充分发挥设计效能,达到最佳运作效果,需要对计算机硬、软件系统进行较为完备的性能测试与最佳配置,特别是内存配置的好坏对系统的运行速度具有决定性的作用。下面,笔者就如何优化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)安装VC、VB开发系统需要增加16MB内存空间;
  另外,如在Windows NT上构建大型数据库如SYBASE、Microsoft SQL Server等,对内存的需求就更多了。
  2优化内存性能
  为了使WindowsNT不至于过分占用较多的内存或者浪费处理器的时间用于换页,可以采用以下方法优化内存性能。
  (1)减少显示颜色的数量;
  (2)降低显示分辨率;
  (3)尽可能不使用或使用位宽度较小的墙纸;
  (4)关闭不需要的服务程序或驱动程序,尽量不要在服务器上使用其它应用程序。
  停用服务或驱动程序的操作步骤如下:
  ①确定需要停用的服务或驱动程序的名称;
  ②从“控制面板”中双击“服务”或“设备”图标;
  ③在列表中选择想要停用的服务或设备驱动程序的名称,单击“停止”按钮,这时出现确认操作对话框;
  ④选择“是”确认操作,然后关闭对话框完成设置。
  3优化虚拟内存
  在对Windows NT虚拟内存进行设置时需要合理确定各个驱动器分页文件的“起始大小”和“最大值”两个参数,它们用于指定分页文件的起始空间和最大空间。下面对这两个参数作一些解释:
  起始大小:指初始创建该分页文件时的文件大小,单位为MB,根据缺省设置,这个值被设置为系统中的物理内存的大小。
  最大值:指出该分页文件的最大尺寸,单位为MB。
  (1)分页文件的设置原则:
  ①分页文件起始大小应保留缺省设置,一般情况下请不要改动;
  ②分页文件理想的最大尺寸为系统物理内存尺寸的2.5倍至4倍。需要说明的是:如果系统工作时不需要大量内存,请选择靠近下限的值,即用系统物理内存的2.5倍作为这个尺寸的起始值;如果系统工作时需要大量内存,请选择靠近上限的值。
  (2)Windows NT虚拟内存设置步骤:
  ①从“控制面板”中双击“系统”图标;
  ②在“系统特性”对话框中单击“性能”标签;
  ③在虚拟内存对话框中单击“更改”按钮,这时出现“虚拟内存”对话框,上端的驱动器框逐一列出了 Windows NT所有页面文件的大小;
  ④在驱动器列表中,选择需要设置分页文件的驱动器盘符,在“驱动器页面文件大小”对话框中列出了 “起始大小”和“最大值”两个参数栏,填入按照上面的原则确定的数值;
  ⑤单击“设置”确认以上操作,然后依次单击“确定”按钮退出各个对话框,完成设置。
  (3)Win95/98虚拟内存设置。
  Win95/98虚拟内存设置方法、步骤和原则与Windows NT 4.0的设置大致相同,请参照上面Windows NT的设置。
  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可用内存
  在大多数的生产环境中,服务器配备的物理内存是64MB~128MB,偶尔也有256MB的,只要配置恰当是完全可以满足SQL Server的内存需求的。下表是笔者关于SQL Server内存分配的建议规划,供参考。

物理内存 分配给SQL Server 设置值(单位:2KB)
8MB 4MB 2048
16MB 8MB 4096
32MB 16~18MB 8192~9216
48MB 28~34MB 14336~17408
64MB 40~46MB 20480~23552
128MB 100~108MB 51200~55296
256MB 216~226MB 110592~115712
512MB 464~472MB 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数据库成功启动,问题迎刃而解。

五、结束语

  目前,大多数单位投入使用的Microsoft SQL Server数据库服务器的物理内存一般都在64MB以上,如农业银行省、市分行的统计服务器配备128MB物理内存,只要按照上面提出的方法合理规划、优化NT和SQL Server的内存配置,使设置尽可能达到最优,应用系统就一定能够充分发挥设计功能、满足业务需求。□

季广胜(中国农业银行江苏省泰州市分行信息电脑中心,江苏 泰州 225300)

参 考 文 献

1,Jim Boye Windows NT 4.0 INSTALLATION& CONFIGURATION 北京:机械工业出版社,1997 7
2,Microsoft公司网络数据库系统管理 Microsoft SQL Server 6.0北京:科学出版社,1997 1

转载于:https://www.cnblogs.com/runfeng/archive/2006/07/03/441691.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/277208.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

知道第一章计算机基础知识作业答案,大学计算机基础作业答案

大学计算机基础作业答案第一章 现代社会与计算机1. 什么事信息,其主要特征是什么?答:信息是可传递和共享的,可消除人们认知上的不确定因素,对人们的决策具有现实或潜在价值的知识。特征:普遍性、依附性、共…

Netflix推荐系统(Part two)-系统架构

Netflix在2013年公布了自己推荐系统的架构,本文主要总结和翻译自System Architectures for Personalization and Recommendation,但这并不是一篇完整的翻译文章。 Overview 首先,我们在下图中提供推荐系统的整体系统图。 该体系结构的主要组件…

母版页可以动态切换吗?

通过设置“MasterPageFile”属性可以做到,然而这个属性只能在“Page_PreInit”事件之中或之前设置。在Page_PreInit事件或之前,当前页面包含的对象还没有被生成,不能访问,所以,如果想根据当前页面上某个控件的值动态切…

httpclient 多附件上传

多附件上传实例&#xff1a; /*** 多附件上传* param host* param uri* param attachment 附件* param param body参数* return*/public String upload(String host, String uri, Map<String,String> attachment, Map<String, String> param) {logger.info("…

加拿大大学 计算机专业排名2015,加拿大大学计算机专业排名top15

加拿大大学计算机专业排名。加拿大开设计算机专业的很多高校还提供带薪实习机会&#xff0c;吸引了众多国际学子前往留学。在加拿大计算机专业优秀的大学很多。同时&#xff0c;加拿大计算机专业排名在世界上也非常的靠前&#xff0c;在加拿大有很多大学值得广大计算机热爱者选…

如何读懂并写出装逼的函数式代码

今天在微博上看到了 有人分享了下面的这段函数式代码&#xff0c;我把代码贴到下面&#xff0c;不过我对原来的代码略有改动&#xff0c;对于函数式的版本&#xff0c;咋一看&#xff0c;的确令人非常费解&#xff0c;仔细看一下&#xff0c;你可能就晕掉了&#xff0c;似乎完全…

如何打通高薪的黄金通道 成为职场金领

身在职场的你&#xff0c;是否想过有朝一日能获得百万年薪&#xff1f;最近&#xff0c;央视二套绝对挑战特别节目巅峰营销的热播&#xff0c;引发各方人士对东风日产百万年薪招兵营销总监的关注。身价百万的营销总监人人想当&#xff0c;如何才能成为这样的职场金领&#xff0…

iView 实战系列教程(21课时)_2.iView 实战教程之导航、路由、鉴权篇

在c盘创建一个iview-router的项目、然后使用默认的配置跳过添加vue-router的插件编译我们的文件。编译好之后&#xff0c;我们启动App默认的页面就打开了。默认两个路由一个是about界面一个是home我们使用编辑器打开代码&#xff0c;用我们的iview的menu组件替换掉这两个路由在…

计算机专业单元测试卷答案,银保监会考试题库:计算机类模拟试题练习(六)答案...

2020银保监会招聘考试即将开始。根据往年经验&#xff0c;银保监会招聘考试科目包括行测、申论和专业科目共三科&#xff0c;专业科目是考试提分的关键&#xff0c;那么如何才能提升专业科目的做题速度并快速提分呢&#xff1f;别担心&#xff0c;中公金融人小编根据历年的考试…

Ubuntu安装Nginx

在Ubuntu下安装Nginx有以下方法&#xff0c;但是如果想要安装最新版本的就必须下载源码包编译安装。 一、基于APT源安装 sudo apt-get install nginx 安装好的文件位置&#xff1a; /usr/sbin/nginx&#xff1a;主程序 /etc/nginx&#xff1a;存放配置文件 /usr/share/nginx&am…

9.28PMP每日一题

控制质量过程的输出是&#xff1a;A、变更请求B、批准的变更请求C、工作绩效数据D、事业环境因素 答案将于明天和新题一起发布&#xff01;9.27试题答案&#xff1a;C转载于:https://blog.51cto.com/13554215/2287292

将数组绑定到dropdownlist上

<% Page Language"C#" %><% Import Namespace"System.Data" %><Script Language"C#" Runat"Server">public void Page_Load(Object src,EventArgs e){ //首先建立一个数组 ArrayList arrnew ArrayList(); …

HTML标题h,HTML H标题标签

可以将HTML标题或HTML h标签定义为要在网页上显示的标题或副标题。当你将文本放在标题标签……… h1>内时, 它在浏览器中以粗体显示, 并且文本的大小取决于标题的数量。从到标签定义了六个不同的HTML标题, 从最高级别h1(主标题)到最低级别h6(最重要的标题)。h1是最大的标题标…

汤姆大叔的6道javascript编程题题解

1、找出数字数组中最大的元素&#xff08;使用Math.max函数&#xff09; 123var a [1, 2, 3, 6, 5, 4];var ans Math.max.apply(null, a);console.log(ans); // 6这题很巧妙地用了apply&#xff0c;如果不是数组&#xff0c;是很多数字求最大值&#xff0c;我们知道可以这样…

Android 多线程之几个基本问题

Android中的进程和线程 Android中的一个应用程序一般就对应着一个进程&#xff0c;多进程的情况可以参考Android 多进程通信之几个基本问题 Android中更常见的是多线程的情况&#xff0c;一个应用程序中一般都有包括UI线程等多个线程。Android中规定网络访问必须在子线程中进行…

Web下的整体测试

随着Internet的日益普及&#xff0c;现在基于B/S结构的大型应用越来越多&#xff0c;可如何对这些应用进行测试成为日益迫切的问题。有许多测试人员来信问我B/S的测试如何做&#xff0c;由于工作较繁忙&#xff0c;对大家提出的问题也是头痛医头脚痛医脚&#xff0c;没有对WEB的…

用计算机算算术平方根顺序是ON然后是什么,第2课时用计算器求一个正数的算术平方根.ppt...

1.比较下列各组数的大小&#xff1a;(1) 与(2) 与 8依次按键显示&#xff1a;1.732 050 808例3 小丽想用一块面积为400 cm2的正方形纸片&#xff0c;沿着边的方向剪出一块面积为300 cm2的长方形纸片&#xff0c;使它的长宽之比为3:2&#xff0e;她不知能否裁得出来&#xff0c;…

MySQL 命令

版权声明&#xff1a;本文首发 http://asing1elife.com &#xff0c;转载请注明出处。 https://blog.csdn.net/asing1elife/article/details/82892834 MySQL 一些常见命令 更多精彩 更多技术博客&#xff0c;请移步 asing1elife’s blog 查看版本号 mysql -V重启/启动/停止 mys…

Bookshelf 2 简单DFS

链接&#xff1a;https://ac.nowcoder.com/acm/contest/993/C来源&#xff1a;牛客网 题目描述 Farmer John recently bought another bookshelf for the cow library, but the shelf is getting filled up quite quickly, and now the only available space is at the top.FJ…

一步一步SharePoint 2007之五:向网站中添加一个子网站

一步一步SharePoint 2007之五&#xff1a;向网站中添加一个子网站摘要感受完看到成果的激动&#xff0c;感受完邻家女孩的漂亮、可爱和端庄&#xff0c;不要停止&#xff0c;来&#xff0c;让我们一起来动手打造心目中的完美女神吧&#xff01;本篇文章将介绍如何向一个网站中添…