小女巫 发表于 2015-1-16 22:23:44

MSSQL网站制作之浅谈优化SQLServer数据库服务器内存设置...

操作被同步到从库上后,则主从都“回天无力”。server|sqlserver|战略|服务器|数据|数据库|优化农业银行总行1998年以来正式推行了新版收集版综合营业统计信息体系,该体系是基于WindowsNT4.0平台,接纳客户/服务器形式,以MicrosoftSQLServer为基本创建起来的年夜型数据库使用程序,体系界面友爱、操纵烦琐,盘算、剖析、检索功效十分壮大,为包管农业银行体系实时举行纵向和横向营业数据收罗、依照分歧请求天生统计报表,举行周全营业举动剖析供应了强无力的保证。但在这套程序的推行、保护中笔者发明体系偶然运转速率较慢,出格是在Win95客户端操纵时尤其严峻,经由扫除网线毗连等硬件大概带来的影响后上述成绩仍旧存在。笔者经由细心探索,发明体系对硬、软件的请求较高,为充实发扬计划效能,到达最好运作效果,必要对盘算机硬、软件体系举行较为完整的功能测试与最好设置,出格是内存设置的优劣对体系的运转速率具有决意性的感化。上面,笔者就怎样优化SQLServer数据库服务器的内存设置提出一些熟悉和意见。
1、有关内存的基础观点
  1物理内存与假造内存
  WindowsNT利用两类内存:物理内存与假造内存。
  物理内存:作为RAM芯片安装在盘算机外部的存储器。
  假造内存:用于摹拟RAM芯片功效的磁盘(硬盘)空间,实在质是经由过程将内存中以后没有利用的部份内容一时存储到磁盘上,使体系可使用到比呆板物理内存更多的内存。
  2分页和分页文件
  WindowsNT体系经由过程利用磁盘空间使得对内存的需求失掉部分减缓,从而利用到比物理内存更多内存的手艺就称为“互换”或分页,也就是一般所说的假造内存手艺。一般WindowsNT4.0体系安装时将在引诱驱动器上设置一个巨细为16MB的互换(分页)文件(pagefile.sys)。
2、优化WindowsNT4.0体系内存设置
  在年夜多半情形下,为了充实发扬WindowsNT4.0体系效能,内存的感化比起处置器的处置才能更具有影响力,出格是在客户/服务器形式情况下更是云云,由于一般在这类情况下其实不非常夸大处置器的才能,相反却非常注意是不是接纳充足的内存来满意各个客户的使用必要。别的,为了取得容错功效和回护使用程序,包管使用程序高速运转、充实发扬计划功效都必要有充足多的内存,出格是产业画图计划和各类工程使用程序更必要占用大批的内存来举行庞大的盘算。
  物理内存(RAM)便利疾速的长处不言而喻,但因为其代价高贵,也就不成能做到多多益善了,因而经由过程公道优化内存设置、扩大假造内存进步盘算机运算速率也就成了一项很主要的使用手艺手腕。
  1包管WindowsNT体系基础内存需求
  WindowsNT4.0体系至小应设置12MB内存,16MB内存基础够用,一般情形下包管NT体系有32MB内存就能够了,由于并非一切的16MB基础内存在任什么时候候都被同时利用。假如增加一些服务和使用程序,则对内存的需求就会急剧增年夜。如:
  (1)增加收集服务必要4MB内存空间;
  (2)容错功效和体系回护功效必要8MB内存(如磁盘镜像和分条功效);
  (3)举行图形图像处置必要增添16MB内存空间;
  (4)安装VC、VB"target=_blank>VB开辟体系必要增添16MB内存空间;
  别的,如在WindowsNT上构建年夜型数据库如SYBASE、MicrosoftSQLServer等,对内存的需求就更多了。
  2优化内存功能
  为了使WindowsNT不至于太过占用较多的内存大概华侈处置器的工夫用于换页,能够接纳以下办法优化内存功能。
  (1)削减显现色彩的数目;
  (2)下降显现分辩率;
  (3)尽量不利用或利用位宽度较小的墙纸;
  (4)封闭不必要的服务程序或驱动程序,只管不要在服务器上利用别的使用程序。
  停用服务或驱动程序的操纵步骤以下:
  ①断定必要停用的服务或驱动程序的称号;
  ②从“把持面板”中双击“服务”或“设备”图标;
  ③在列表当选择想要停用的服务或设备驱动程序的称号,单击“中断”按钮,这时候呈现确认操纵对话框;
  ④选择“是”确认操纵,然后封闭对话框完成设置。
  3优化假造内存
  在对WindowsNT假造内存举行设置时必要公道断定各个驱动器分页文件的“肇端巨细”和“最年夜值”两个参数,它们用于指定分页文件的肇端空间和最年夜空间。上面对这两个参数作一些注释:
  肇端巨细:指初始创立该分页文件时的文件巨细,单元为MB,依据缺省设置,这个值被设置为体系中的物理内存的巨细。
  最年夜值:指出该分页文件的最年夜尺寸,单元为MB。
  (1)分页文件的设置准绳:
  ①分页文件肇端巨细应保存缺省设置,一样平常情形下请不要修改;
  ②分页文件幻想的最年夜尺寸为体系物理内存尺寸的2.5倍至4倍。必要申明的是:假如体系事情时不必要大批内存,请选择接近上限的值,即用体系物理内存的2.5倍作为这个尺寸的肇端值;假如体系事情时必要大批内存,请选择接近下限的值。
  (2)WindowsNT假造内存设置步骤:
  ①从“把持面板”中双击“体系”图标;
  ②在“体系特征”对话框中单击“功能”标签;
  ③在假造内存对话框中单击“变动”按钮,这时候呈现“假造内存”对话框,上真个驱动器框一一列出了WindowsNT一切页面文件的巨细;
  ④在驱动器列表中,选择必要设置分页文件的驱动器盘符,在“驱动器页面文件巨细”对话框中列出了“肇端巨细”和“最年夜值”两个参数栏,填进依照下面的准绳断定的数值;
  ⑤单击“设置”确认以上操纵,然后顺次单击“断定”按钮加入各个对话框,完成设置。
  (3)Win95/98假造内存设置。
  Win95/98假造内存设置办法、步骤和准绳与WindowsNT4.0的设置大抵不异,请参照下面WindowsNT的设置。
  4注重事项
  (1)公道断定分页文件的最年夜值,依据体系需求随时举行调剂,利用过量假造内存将招致全部体系处置功能的下落。设置假造内存最年夜值的目标是利用户不用在WindowsNT的互换文件上损耗过量的磁盘空间,一般情形下假如凌驾了体系必要的最好值后,天生互换文件的磁盘空间就被华侈了。
  (2)尽量设立公用硬盘设置内存互换区,或将互换空间放到主硬盘的另外一个分区,同时应将主硬盘的互换文件巨细降至16MB,如许主硬盘(分区)仅用来安排操纵体系和使用程序,就能够削减互换次数,避免频仍互换泯灭大批CPU工夫。
  (3)假造内存手艺切实其实改良了WindowsNT体系的功能,但也遭到呆板硬盘空间巨细、硬盘速率、处置器(CPU)速率的影响,从幻想角度动身,要进步盘算机的功能就必需削减互换操纵的次数,可是没有一个WindowsNT盘算机不产生互换,这就请求盘算秘密有充足的物理内存,以坚持起码的互换操纵。
3、优化MicrosoftSQLServer数据库内存设置
  内存是影响MicrosoftSQLServer体系功能的一个主要要素,SQLServer数据库安装时将为具有32MB物理内存的呆板缺省设置16MB可用内存,16MB物理内存的呆板缺省设置4MB可用内存。应在MicrosoftSQLServer数据库安装落后行内存选项(Memory)设置,最年夜设置值为2GB。
  为了断定SQLServer体系最合适的内存需求,能够从总的物理内存中减往WindowsNT4.0必要的内存和别的一些内存需求后综合断定,幻想的情形是给SQLServer分派尽量多的内存,而不发生页面调剂。
  1依据物理内存公道计划SQLServer可用内存
  在年夜多半的临盆情况中,服务器装备的物理内存是64MB~128MB,偶然也有256MB的,只需设置得当是完整能够满意SQLServer的内存需求的。下表是笔者关于SQLServer内存分派的倡议计划,供参考。

物理内存分派给SQLServer设置值(单元:2KB)
8MB4MB2048
16MB8MB4096
32MB16~18MB8192~9216
48MB28~34MB14336~17408
64MB40~46MB20480~23552
128MB100~108MB51200~55296
256MB216~226MB110592~115712
512MB464~472MB237568~241664
  以下是SQLServer内存选项(Memory)设置办法
  (1)从MicrosoftSQLServer程序会合启动SQLEnterpriseManager;
  (2)从ServerManager窗口当选择“Server”菜单选项;
  (3)在“Server”菜单当选择“Configurations”选项;
  (4)在“ServerConfiguration”对话框当选择”Configuration”标签,Configuration窗口显现设置选项列表;
  (5)选中“Memory”项目,在“Current”栏填进新值;
  (6)中断偏重新启动SQLServer服务,使设置失效。
  2公道扩大假造内存、增年夜SQLServer可用内存
  当SQLServer体系的确必要扩展可用内存时,应在磁盘空间充分的情形下扩大供假造内存,并响应增年夜SQLServer可用内存。详细做法是,体系办理员起首扩大服务器的假造内存,然后再参考上表增年夜SQLServer可用内存,关头是要依据体系的负载情形综合决意是不是扩大内存、优化设置。
  3利用tempinRAM
  SQLServer利用tempdb一时数据库作为一些查询毗连操纵时排序或创立一时表的事情空间。将tempdb创立在RAM中可使体系操纵功能有较年夜进步,并且由于tempdb在每次重启动服务器时都重修,如许即便有非一般的封闭也是较为平安的,比方停电妨碍。要将tempdb创立在RAM中,可使用sp_configure举行设置,详细用法请参阅有关材料。
  因为tempdbinRAM利用的内存是由体系从内存体独自分派的,与SQLServer的内存选项设置的可用内存池是分隔的,利用tempdbinRAM将削减全部体系的可用内存,应依据SQLServer和服务器运转情形举行设置,不然便可能拔苗助长,影响体系功能。别的,得当增添tempdb数据库空间,即便不利用tempdbinRAM,也能够进步数据库的运转速率。
  4注重事项
  (1)倡议在临盆情况中SQLServer不要设置小于32MB内存,并且数据库服务器上只管不要运转别的使用程序;
  (2)扩大供假造内存、增年夜SQLServer可用内存,招考虑物理内存利用情况和磁盘空间允许情形;
  (3)在大概的情形下,要为体系留有部分分外的内存,如许在服务器上翻开一个服务或增加一个历程且不改动SQLServer内存设置时,不致于使NT服务器的运转速率遭到影响(变得很慢),一样平常以为最小为2MB最年夜为20MB。
4、巧用内存设置,办理统计服务器成绩
  一单元的统计服务器投进利用后,运转速率较慢,经排查缘故原由,发明SQLServer中的内存选项(Memory)仅为安装缺省值――16MB(而服务器有128MB的物理内存),在将内存值调剂为100MB时却误将其改成了1000MB,使得SQLServer服务不克不及启动,统计数据库打不开,也就不克不及再次进进SQLEnterpriseManager修正内存设置了。因为近期未备份营业数据,不到万不得已不克不及重装SQLServer数据库,就试图用命令行参数命令来从头启动SQLServer服务,但均不克不及见效,堕入了窘境。我们经由细心剖析提出:既然SQLServer可用内存设置值远宏大于物理内存,形成SQLServer服务不克不及启动,何不扩大假造内存呢?经想法将呆板假造内存扩大至1000MB偏重新启动,SQLServer数据库乐成启动,成绩水到渠成。
5、停止语
  今朝,年夜多半单元投进利用的MicrosoftSQLServer数据库服务器的物理内存一样平常都在64MB以上,如农业银行省、市分行的统计服务器装备128MB物理内存,只需依照下面提出的办法公道计划、优化NT和SQLServer的内存设置,使设置尽量到达最优,使用体系就必定可以充实发扬计划功效、满意营业需求。□
季广胜(中国农业银行江苏省泰州市分行信息电脑中央,江苏泰州225300)
参考文献
1,JimBoyeWindowsNT4.0INSTALLATION&CONFIGURATION北京:机器产业出书社,19977
2,Microsoft公司收集数据库体系办理MicrosoftSQLServer6.0北京:迷信出书社,19971


BDB源自BerkeleyDB,事务型数据库的另一种选择,支持COMMIT和ROLLBACK等其他事务特性

若天明 发表于 2015-1-19 09:04:38

这就引发了对varchar和char效率讨论的老问题。到底如何分配varchar的数据,是否会出现大规模的碎片?

只想知道 发表于 2015-1-24 12:03:17

Mirror可以算是SQLServer的Dataguard了。但是能不能被大伙用起来就不知道了。

小妖女 发表于 2015-2-1 09:55:58

也可谈一下你是怎么优化存储过程的?

蒙在股里 发表于 2015-2-7 02:29:44

现在是在考虑:如果写到服务器端,我一下搞他个10个存储过程导过去,那久之服务器不就成垃圾箱了吗?即便优化了我的中间层.

冷月葬花魂 发表于 2015-2-19 21:14:31

比如日志传送、比如集群。。。

深爱那片海 发表于 2015-3-6 15:33:50

相信各位对数据库和怎么样学习数据库都有一些经验和看法,也会有人走了一些弯路总结出自己的经验来,希望大家能把各自的看法和经验拿出来分享,给别人一份帮助,给自己一份快乐

海妖 发表于 2015-3-13 03:30:16

我个人认为就是孜孜不懈的学习

柔情似水 发表于 2015-3-20 11:28:50

如安全管理、备份恢复、性能监控和调优等,SQL只要熟悉基本操作就可以,只要程序设计部分只要稍加了解即可(如存储过程、触发器等)。
页: [1]
查看完整版本: MSSQL网站制作之浅谈优化SQLServer数据库服务器内存设置...