您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 信息化管理 > SAPR3性能优化指南(1)
MSSQLServer7.0的SAPR/3性能优化指南1998年11月发行读者本文档所提供的信息可以帮助SAPR/3数据库管理员理解Microsoft®SQLServer™7.0的各个方面。这些方面可以经过优化,从而在与SAPR/3环境相关的特有数据库工作负荷条件下提供最佳性能。虽然本文档是为SAPR/3站点量身定制的,但是一定要注意本文档中描述的SQLServer功能和优化技巧不仅仅适用于SAPR/3。大型到超大型数据库(VLDB)需要支持大量用户连接和大的工作负荷,工作于这一环境中的数据库管理员将从本文的信息中获益匪浅。引言本篇有关性能优化的文档将讨论SAPR/3环境中的SQLServer7.0最佳配置。本指南分为四个逻辑部分。第一部分,讨论与MicrosoftWindowsNT®Server相关的配置选项。第二部分,描述SAPR/3环境中SQLServer的重要配置选项。前面这两个部分直截了当,其中还包含了在SQLServer的初始配置过程中几分钟就可以完成的一些步骤。第三部分,讨论SQLServer的索引设计,因为它与SAPR/3相关。索引分析往往是一个极其棘手的过程,为使数据库性能最佳需要持续不断地执行索引分析。MicrosoftTechNet中的“MicrosoftSQLServer7.0性能优化指南”应该作为本文第三部分的补充读物。该指南综合讨论硬件I/O性能、索引设计以及SQLServer性能优化工具。第四部分,讨论R/3数据库中的SQLServer文件和文件组的最佳应用。WindowsNT配置WindowsNT页面文件的大小应该至少比服务器上安装的RAM大三倍,而且要至少有10亿字节(1GB)。设置页面文件大小1.在开始菜单上,指向设置,然后单击控制面板。2.双击系统,然后双击性能选项卡。3.单击更改,然后在起始大小(MB)框中,输入页面文件的大小(按兆字节(MB)计)。4.单击确定。通常,VMM(虚拟内存管理器)已经根据SQLServer安装的默认设置进行了适当的配置。检查和/或配置VMM设置1.在开始菜单上,指向设置,然后单击控制面板。2.双击网络,然后单击服务选项卡。3.双击服务器,选择最大化网络应用程序吞吐量,然后单击确定。配置最小影响的屏幕保护程序和墙纸1.在开始菜单上,指向设置,然后单击控制面板。2.双击显示,然后单击背景选项卡。3.选定图案为(无),并选定墙纸为(无)。4.单击应用,然后单击屏幕保护程序选项卡。5.在屏幕保护程序下,选定BlankScreen,然后选定密码保护。6.单击应用。一些多处理器服务器可以将联网I/O请求动态分发到最不繁忙的处理器。该硬件功能有助于防止在服务于许多联网请求的系统中出现处理器瓶颈和不良网络性能。该功能通常称为对称中断分发,使用该功能可以改进可扩展性能并防止出现在其它处理器还有剩余容量时某一个处理器却成为瓶颈的情况。它在Pentium处理器系列的WindowsNT4.0HAL(硬件抽象层)中可以找到。Windows®2000也支持该功能。不同处理器操作平台使用不同方法分发中断。网卡的中断分发是由每个处理器操作平台的HAL来控制的。HAL实施的中断方案取决于处理器的性能。某些处理器包含了中断控制硬件,如高级可编程中断控制器(APIC)。APIC允许处理器将中断路由到计算机上的其它处理器。有关特定处理器操作平台所使用的分发方法的详细信息,请咨询操作平台供应商。在默认情况下,WindowsNT4.0不使用对称中断分发,而是将与网卡(NIC)相关的延迟进程调用(DPC)活动分配给系统中编号最大的处理器。在安装有多个NIC且NIC活动的系统中,每个额外的NIC的活动都指派到下一个编号最大的处理器。如果处理器频繁以百分之百的容量(性能监视器所显示的Processor:%ProcessorTime=100%)操作而且一半以上时间用于为DPC提供服务上(即如果Processor:%DPCTime50%),那么可以通过调整ProcessorAffinityMask来提高性能。警告注册表编辑器使用不当会导致严重的问题,有可能需要重新安装操作系统。使用注册表编辑器要特别小心。Microsoft不保证能够解决因注册表编辑器使用不当而导致的问题。建议您在执行修改前备份注册表内容,这样在注册表修改出现问题时就能够还原内容。有关备份和还原注册表信息的说明可以在注册表编辑器的联机帮助中找到。在能够进行对称中断分发的多处理器服务器上,将WindowsNT注册表中ProcessorAffinityMask数值项的值设置为零。这样就会将网络I/O请求动态分发到最有能力处理请求的处理器中。ProcessorAffinityMask位于:HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\NDIS\Parameters。启动注册表编辑器以设置ProcessorAffinityMask1.在开始菜单上,单击运行。2.键入regedt32。在注册表编辑器中找到适当关键字1.在窗口菜单中选择HKEY_LOCAL_MACHINE。2.在注册表编辑器左边窗格中,双击SYSTEM。3.双击CurrentControlSet,双击Services,双击NDIS,然后双击Parameters。将ProcessorAffinityMask设置为零1.在注册表编辑器右边窗格中,双击ProcessorAffinityMask。2.键入0(零),然后单击确定。3.在注册表菜单上,单击退出。SQLServer配置SQLServer内存的推荐设置取决于R/3实例对数据库服务器的使用情况。如果SQLServer是作为专用数据库服务器而运行,建议SQLServer按照默认值动态调整它所需要的内存。R/3实例最小值最大值专用数据库服务器默认值默认值更新实例已安装RAM的40%已安装RAM的65%中心实例已安装RAM的45%已安装RAM的45%在有2GBRAM的中心实例上设置内存的例子(EnterpriseManager)1.在右边窗格中,双击SQLServerGroup图标。2.双击R/3数据库服务器的SQLServer图标。3.单击Memory选项卡,然后单击Useafixedmemorysize(MB)。4.将Useafixedmemorysize(MB)下的滑块移动到900。5.选定ReservephysicalmemoryforSQLServer,单击Apply,然后单击OK。完成SQLServer的内存配置之后,建议使用setworkingsetsize选项保留与SQLServer内存设置相等的物理内存空间。设置该选项意味着WindowsNT不转换出SQLServer页。配置设置工作集大小选项的例子(EnterpriseManager)1.在右边窗格中,双击SQLServerGroup图标。2.双击R/3数据库服务器的SQLServer图标。3.单击Memory选项卡,然后选定selectReservephysicalmemoryforSQLServer。4.单击Apply,然后单击OK。SAP测试显示出,在大多数R/3数据库服务器操作环境下网络数据包大小为8,192字节时性能最佳。该选项需要使用SQLServerQueryAnalyzer来设置。设置网络数据包大小(QueryAnalyzer)1.键入execsp_configure'networkpacketsize',8192。2.键入reconfigurewithoverride。3.按CTRL+E执行以上命令。在专用服务器上,建议使用SQLServerpriorityboost选项。设置优先级提升选项(EnterpriseManager)1.在右边窗格中,双击SQLServerGroup图标。2.双击R/3数据库服务器的SQLServer图标。3.单击Processor选项卡,然后在ProcessorControl框中,选定BoostSQLServerpriorityonWindowsNT。建议将SQLServerindexcreatememory选项配置为16MB。该选项需要使用SQLServer查询分析器来设置。设置索引创建内存选项(QueryAnalyzer)1.键入execsp_configure'indexcreatememory',16000。2.键入reconfigurewithoverride。3.按CTRL+E执行以上命令。禁用VBHDR、VBMOD和VBDATA表的页面锁定(QueryAnalyzer)1.在查询窗口键入以下命令:execsp_indexoption'VBHDR','allowpagelocks','false'execsp_indexoption'VBMOD','allowpagelocks','false'execsp_indexoption'VBDATA','allowpagelocks','false'2.按CTRL+E执行以上命令。如果数据库服务器上的所有处理器的利用率都很高(性能监视器表明在多处理器服务器上所有处理器的处理器利用率全部大于95%),那么就有必要打开SQLServerlightweightpooling。在所有处理器都非常接近完全利用时,lightweightpooling可以帮助恢复大约5%到7%的CPU。打开SQLServerlightweightpooling(EnterpriseManager)1.在右边窗格中,双击SQLServerGroup图标。2.双击R/3数据库服务器的SQLServer图标。3.单击Processor选项卡,选定selectUseWindowsNTFibers,然后单击Apply。4.当提示重新启动SQLServer时,单击Yes,然后单击Ok。SQLServeraffinitymask配置选项提供了不能执行SQLServer线程的特定处理器的规范。最好运用SQLServer关系掩码的默认设置,即零。关系掩码的设置为零表明允许在所有处理器上执行SQLServer线程。几乎在所有情况下,该设置都会使性能最佳,因为它避免了在其它处理器上有剩余容量的情况下而在某一台处理器上的SQLServer连接非常繁忙的情况。Microsoft的IT机构和参与SQLServer7.0EarlyAdopter计划的SAPR/3用户已运用了关系掩码的默认设置,结果性能良好。索引设计与维护“MicrosoftSQLServer7.0性能优化指南”提供了有关SQLServer索引和性能优化的重要信息。此文档可在“查找详细信息”处找到。大型的SAPR/3安装会有一些包含非常多行的SQLServer表。有了大的表,索引对数据库I/O性能影响极大。在单个数据库行或少量数据库行上搜索并执行的操作,应该有一个基于提供最高级别选择性的一列或几列所定义的非聚集或聚集索引。这样,SQLServer查询处理器和存储引擎就能够将检索行所需的I/O控制到最小化。例如,如果必须定期从非常大的Orders表中根据orderid来检索单个定单记录,那么基于orderid列定义索引可以加快查询的速度就是有意义的。在多数数据库行上搜索和执行的操作应该基于定义范围扫描的列定义聚集索引。从非常大的七月份Orders表中检索所有定单的查询就是范围扫描的一个例子。在这种情况下,Orders表的日期列就是聚集索引的最佳列。即将发行的SAPR/34.5B版本将带有一个影响SQLServer聚集索引选择灵活性的重要功能。在4.5B版中,R/3数据字典对除主键列以外的列聚集索引有被动支持。被动支持的意思是:在数据库表已改变以致于聚集索引从主键移至了另一列或列集的情况下,SAPR/3数据字典会识别并记录SQLServer聚集索引的位置。创建聚集索引需要使用与R/3工具对应的SQLServer工具。但是,聚集索引的位置在创建之后不会在数据库转换和R/3版本升级过程中丢失。4.5
本文标题:SAPR3性能优化指南(1)
链接地址:https://www.777doc.com/doc-13509 .html