版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、MS SQQL Seerverr 7.00 的 SSAP RR/3 性性能优化指指南 1998 年 111 月发行行 读者 本文档所提提供的信息息可以帮助助 SAPP R/33 数据库库管理员理理解 Miicrossoft SQLL Serrver 7.00 的各个个方面。这这些方面可可以经过优优化,从而而在与 SSAP RR/3 环环境相关的的特有数据据库工作负负荷条件下下提供最佳佳性能。 虽然本文档档是为 SSAP RR/3 站站点量身定定制的,但但是一定要要注意本文文档中描述述的 SQQL Seerverr 功能和和优化技巧巧不仅仅适适用于 SSAP RR/3。大大型到超大大型数据库库
2、(VLLDB) 需要支持持大量用户户连接和大大的工作负负荷,工作作于这一环环境中的数数据库管理理员将从本本文的信息息中获益匪匪浅。 引言 本篇有关性性能优化的的文档将讨讨论 SAAP R/3 环境境中的 SSQL SServeer 7.0 最佳佳配置。本本指南分为为四个逻辑辑部分。第第一部分,讨讨论与 MMicroosoftt Winndowss NT Serrver 相关的配配置选项。第二部分分,描述 SAP R/3 环境中 SQL Servver 的的重要配置置选项。前前面这两个个部分直截截了当,其其中还包含含了在 SSQL SServeer 的初初始配置过过程中几分分钟就可以以完成的一一
3、些步骤。第三部分分,讨论 SQL Servver 的的索引设计计,因为它它与 SAAP R/3 相关关。索引分分析往往是是一个极其其棘手的过过程,为使使数据库性性能最佳需需要持续不不断地执行行索引分析析。 Miicrossoft TechhNet 中的“MMicroosoftt SQLL Serrver 7.0 性能优化化指南”应应该作为本本文第三部部分的补充充读物。该该指南综合合讨论硬件件 I/OO 性能、索引设计计以及 SSQL SServeer 性能能优化工具具。第四部部分,讨论论 R/33 数据库库中的 SSQL SServeer 文件件和文件组组的最佳应应用。 Windoows NN
4、T 配置置 Windoows NNT 页面面文件的大大小应该至至少比服务务器上安装装的 RAAM 大三三倍,而且且要至少有有 10 亿字节 (1 GGB)。 设置页面文文件大小 在开始菜单单上,指向向设置,然后后单击控制制面板。 双击系统,然然后双击性性能选项卡卡。 单击更改,然然后在起始始大小 (MB) 框中,输输入页面文文件的大小小(按兆字字节 (MMB) 计计)。 单击确定。 通常,VMMM(虚拟拟内存管理理器)已经经根据 SSQL SServeer 安装装的默认设设置进行了了适当的配配置。 检查和/或或配置 VVMM 设设置 在开始菜单单上,指向向设置,然后后单击控制制面板。 双击网络
5、,然然后单击服服务选项卡卡。 双击服务器器,选择最大大化网络应应用程序吞吞吐量,然然后单击确确定。 配置最小影影响的屏幕幕保护程序序和墙纸 在开始菜单单上,指向向设置,然后后单击控制制面板。 双击显示,然然后单击背背景选项卡卡。 选定图案为为(无),并并选定墙纸纸为(无)。 单击应用,然然后单击屏屏幕保护程程序选项卡卡。 在屏幕保护护程序下,选选定 Bllank Screeen,然然后选定密密码保护。 单击应用。 一些多处理理器服务器器可以将联联网 I/O 请求求动态分发发到最不繁繁忙的处理理器。该硬硬件功能有有助于防止止在服务于于许多联网网请求的系系统中出现现处理器瓶瓶颈和不良良网络性能能。
6、该功能能通常称为为对称中断断分发,使使用该功能能可以改进进可扩展性性能并防止止出现在其其它处理器器还有剩余余容量时某某一个处理理器却成为为瓶颈的情情况。它在在 Penntiumm 处理器器系列的 Winddows NT 44.0 HHAL(硬硬件抽象层层)中可以以找到。WWindoows 20000 也支支持该功能能。 不同处理器器操作平台台使用不同同方法分发发中断。网网卡的中断断分发是由由每个处理理器操作平平台的 HHAL 来来控制的。HAL 实施的中中断方案取取决于处理理器的性能能。某些处处理器包含含了中断控控制硬件,如如高级可编编程中断控控制器 (APICC)。APPIC 允允许处理器器
7、将中断路路由到计算算机上的其其它处理器器。有关特特定处理器器操作平台台所使用的的分发方法法的详细信信息,请咨咨询操作平平台供应商商。 在默认情况况下,Wiindowws NTT 4.00 不使用用对称中断断分发,而而是将与网网卡 (NNIC) 相关的延延迟进程调调用 (DDPC) 活动分配配给系统中中编号最大大的处理器器。在安装装有多个 NIC 且 NIIC 活动动的系统中中,每个额额外的 NNIC 的的活动都指指派到下一一个编号最最大的处理理器。 如果处理器器频繁以百百分之百的的容量(性性能监视器器所显示的的 Proocesssor: % Prrocesssor Timee = 1100%)
8、操操作而且一一半以上时时间用于为为 DPCC 提供服服务上(即即如果 PProceessorr: % DPC Timee 550%),那那么可以通通过调整 ProccessoorAfffinittyMassk 来提提高性能。 警告 注册册表编辑器器使用不当当会导致严严重的问题题,有可能能需要重新新安装操作作系统。使使用注册表表编辑器要要特别小心心。Miccrosooft 不不保证能够够解决因注注册表编辑辑器使用不不当而导致致的问题。建议您在在执行修改改前备份注注册表内容容,这样在在注册表修修改出现问问题时就能能够还原内内容。有关关备份和还还原注册表表信息的说说明可以在在注册表编编辑器的联联机帮
9、助中中找到。 在能够进行行对称中断断分发的多多处理器服服务器上,将将 Winndowss NT 注册表中中 ProocesssorAfffiniityMaask 数数值项的值值设置为零零。这样就就会将网络络 I/OO 请求动动态分发到到最有能力力处理请求求的处理器器中。PrrocesssorAAffinnityMMask 位于:HHKEY_LOCAAL_MAACHINNE SSysteem CCurreentCoontroolSett Seervicces NDISS Paarameeterss。 启动注册表表编辑器以以设置 PProceessorrAffiinityyMaskk 在开始菜单单
10、上,单击击运行。 键入 reegedtt32。 在注册表编编辑器中找找到适当关关键字 在窗口菜单单中选择 HKEYY_LOCCAL_MMACHIINE。 在注册表编编辑器左边边窗格中,双双击 SYYSTEMM。 双击 CuurrenntConntrollSet,双双击 Seervicces,双双击 NDDIS ,然然后双击 Paraameteers。 将 ProocesssorAfffiniityMaask 设设置为零 在注册表编编辑器右边边窗格中,双双击 PrrocesssorAAffinnityMMask。 键入 0(零零),然后后单击确定定。 在注册表菜菜单上,单单击退出。 SQL SS
11、erveer 配置置 SQL SServeer 内存存的推荐设设置取决于于 R/33 实例对对数据库服服务器的使使用情况。如果 SSQL SServeer 是作作为专用数数据库服务务器而运行行,建议 SQL Servver 按按照默认值值动态调整整它所需要要的内存。 R/3 实实例最小值最大值专用数据库库服务器默认值默认值更新实例已安装 RRAM 的的 40%已安装 RRAM 的的 65%中心实例已安装 RRAM 的的 45%已安装 RRAM 的的 45%在有 2 GB RRAM 的的中心实例例上设置内内存的例子子 (Ennterpprisee Mannagerr) 在右边窗格格中,双击击 S
12、QLL Serrver Grouup 图标标。 双击 R/3 数据据库服务器器的 SQQL Seerverr 图标。 单击 Meemoryy 选项卡卡,然后单单击 Usse a fixeed meemoryy sizze (MMB)。 将 Usee a ffixedd memmory sizee (MBB) 下的的滑块移动动到 9000。 选定 Reeservve phhysiccal mmemorry foor SQQL Seerverr ,单击击 Appply ,然然后单击 OK。 完成 SQQL Seerverr 的内存存配置之后后,建议使使用 seet woorkinng seet s
13、iize 选选项保留与与 SQLL Serrver 内存设置置相等的物物理内存空空间。设置置该选项意意味着 WWindoows NNT 不转转换出 SSQL SServeer 页。 配置设置工工作集大小小选项的例例子 (EEnterrprisse Maanageer) 在右边窗格格中,双击击 SQLL Serrver Grouup 图标标。 双击 R/3 数据据库服务器器的 SQQL Seerverr 图标。 单击 Meemoryy 选项卡卡,然后选选定 seelectt Resservee phyysicaal meemoryy forr SQLL Serrver。 单击 Appply,然然
14、后单击 OK。 SAP 测测试显示出出,在大多多数 R/3 数据据库服务器器操作环境境下网络数数据包大小小为 8,192 字节时性性能最佳。该选项需需要使用 SQL Servver QQueryy Anaalyzeer 来设设置。 设置网络数数据包大小小 (Quuery Anallyzerr) 键入 exxec ssp_coonfiggure nettworkk paccket sizee, 88192。 键入 reeconffigurre wiith ooverrride。 按 CTRRL + E 执行行以上命令令。 在专用服务务器上,建建议使用 SQL Servver ppriorrity
15、 boosst 选项项。 设置优先级级提升选项项 (Ennterpprisee Mannagerr) 在右边窗格格中,双击击 SQLL Serrver Grouup 图标标。 双击 R/3 数据据库服务器器的 SQQL Seerverr 图标。 单击 Prrocesssor 选项卡,然然后在 PProceessorr Conntroll 框中,选选定 Booost SQL Servver ppriorrity on WWindoows NNT。 建议将 SSQL SServeer inndex creaate mmemorry 选项项配置为 16 MMB。该选选项需要使使用 SQQL Seer
16、verr 查询分分析器来设设置。 设置索引创创建内存选选项 (QQueryy Anaalyzeer) 键入 exxec ssp_coonfiggure inddex ccreatte meemoryy, 1160000。 键入 reeconffigurre wiith ooverrride。 按 CTRRL + E 执行行以上命令令。 禁用 VBBHDR、VBMOOD 和 VBDAATA 表表的页面锁锁定 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令: exec sp_iindexxoptiion VBHDDR,alloowpaggeloccks,fallse exec
17、c sp_indeexopttion VBMMOD,alllowpaageloocks,faalse exeec spp_inddexopptionn VBBDATAA,aallowwpageelockks,falsse 按 CTRRL + E 执行行以上命令令。 如果数据库库服务器上上的所有处处理器的利利用率都很很高(性能能监视器表表明在多处处理器服务务器上所有有处理器的的处理器利利用率全部部大于 995%),那那么就有必必要打开 SQL Servver llighttweigght ppooliing。在在所有处理理器都非常常接近完全全利用时,lightweight pooling 可以帮
18、助恢复大约 5% 到 7% 的 CPU。 打开 SQQL Seerverr ligghtweeightt pooolingg (Ennterpprisee Mannagerr) 在右边窗格格中,双击击 SQLL Serrver Grouup 图标标。 双击 R/3 数据据库服务器器的 SQQL Seerverr 图标。 单击 Prrocesssor 选项卡,选选定 seelectt Usee Winndowss NT Fibeers,然然后单击 Applly。 当提示重新新启动 SSQL SServeer 时,单单击 Yees,然后后单击 OOk。 SQL SServeer afffiniit
19、y mmask 配置选项项提供了不不能执行 SQL Servver 线线程的特定定处理器的的规范。最最好运用 SQL Servver 关关系掩码的的默认设置置,即零。关系掩码码的设置为为零表明允允许在所有有处理器上上执行 SSQL SServeer 线程程。几乎在在所有情况况下,该设设置都会使使性能最佳佳,因为它它避免了在在其它处理理器上有剩剩余容量的的情况下而而在某一台台处理器上上的 SQQL Seerverr 连接非非常繁忙的的情况。MMicroosoftt 的 IIT 机构构和参与 SQL Servver 77.0 EEarlyy Adoopterr 计划的的 SAPP R/33 用户已
20、已运用了关关系掩码的的默认设置置,结果性性能良好。 索引设计与与维护 “Micrrosofft SQQL Seerverr 7.00 性能优优化指南”提供了有有关 SQQL Seerverr 索引和和性能优化化的重要信信息。此文文档可在“查找详细细信息”处处找到。 大型的 SSAP RR/3 安安装会有一一些包含非非常多行的的 SQLL Serrver 表。有了了大的表,索索引对数据据库 I/O 性能能影响极大大。 在单个数据据库行或少少量数据库库行上搜索索并执行的的操作,应应该有一个个基于提供供最高级别别选择性的的一列或几几列所定义义的非聚集集或聚集索索引。这样样,SQLL Serrver
21、查询处理理器和存储储引擎就能能够将检索索行所需的的 I/OO 控制到到最小化。例如,如如果必须定定期从非常常大的 OOrderrs 表中中根据 oorderrid 来来检索单个个定单记录录,那么基基于 orrderiid 列定定义索引可可以加快查查询的速度度就是有意意义的。 在多数数据据库行上搜搜索和执行行的操作应应该基于定定义范围扫扫描的列定定义聚集索索引。从非非常大的七七月份 OOrderrs 表中中检索所有有定单的查查询就是范范围扫描的的一个例子子。在这种种情况下,Orders 表的日期列就是聚集索引的最佳列。 即将发行的的 SAPP R/33 4.55B 版本本将带有一一个影响 SQL
22、 Servver 聚聚集索引选选择灵活性性的重要功功能。在 4.5BB 版中,RR/3 数数据字典对对除主键列列以外的列列聚集索引引有被动支支持。被动动支持的意意思是:在在数据库表表已改变以以致于聚集集索引从主主键移至了了另一列或或列集的情情况下,SSAP RR/3 数数据字典会会识别并记记录 SQQL Seerverr 聚集索索引的位置置。创建聚聚集索引需需要使用与与 R/33 工具对对应的 SSQL SServeer 工具具。但是,聚聚集索引的的位置在创创建之后不不会在数据据库转换和和 R/33 版本升升级过程中中丢失。 4.5B 以后的 SAP R/3 版本中有有可能包含含 SQLL S
23、errver 聚集索引引的积极支支持。积极极支持的意意思是:除除前面所讲讲到的 RR/3 DData Dicttionaary供的的支持外,RR/3 工工具还将支支持在 SSQL SServeer 表上上的列(除除主键列以以外)的聚聚集索引创创建。 聚集索引支支持中的这这些更改与与希望改进进其 R/3 报告告查询性能能的 R/3 数据据库管理员员的想法有有很大出入入。运行 SAP R/3 的大型公公司的月末末和季度报报告可能会会使用数据据库服务器器上的范围围扫描。通通常情况下下会是这样样一种情况况:在大表表上所执行行的范围扫扫描将不以以与定义表表的主键相相同的列为为基础。目目前,SAAP R/
24、3 SQQL Seerverr 数据库库实施将所所有表上的的主键配置置为聚集主主键。某些些情况对测测试非主键键组成部分分且常常为为了报告目目的而用于于大型表的的列的聚集集索引的使使用非常有有利。ALLTER TABLLE 命令令用于将聚聚集主键更更改为非聚聚集主键。 以下索引分分析示例讨讨论了这样样一种情况况,即将聚聚集主键更更改为非聚聚集主键以以便聚集索索引可以基基于另一列列进行定义义并预排将将聚集主键键更改为非非聚集主键键所涉及的的步骤,这这一点是有有意义的。 有关聚集和和非聚集索索引选择的的详细信息息,应参阅阅“Miccrosooft SSQL SServeer 7.0 性能能优化指南南
25、”。 SAP RR/3 在在 ST004 事务务处理中提提供 MSSSTATTS 工具具,可以帮帮助 R/3 数据据库管理员员跟踪数据据库服务器器上所执行行的 SQQL Seerverr 存储过过程的资源源占用。所所有 R/3 与数数据库服务务器的正常常交互作用用都使用存存储过程执执行。 MMSSTAATS 提提供有助于于根据资源源使用区分分存储过程程的信息。MSSTTATS 返回的信信息的例子子包括:存存储过程的的调用次数数、用于调调用存储过过程的平均均和最长时时间、存储储过程调用用所返回的的行平均数数和总行数数、存储过过程是否使使用了游标标、存储过过程用于提提取的时间间与空闲时时间等等。
26、MSSTAATS 提提供了用于于确定在 R/3 数据库服服务器上所所运行的费费用最高的的存储过程程的重要工工具。性能能分析应集集中于这些些费用最高高的查询。 使用以下 SQL Servver 表表示例可以以模仿与许许多 SAAP R/3 表非非常类似的的数据模式式。两个示示例查询将将使用该此此测试表进进行分析。其目的是是说明如何何在 R/3 数据据库服务器器环境中很很好地利用用 SQLL Serrver 索引。 示例数据以下脚本创创建名为 sapttest11 的表并并在其中加加入 1000,0000 个记记录。第一一个名为 col11 的列没没有选择性性。每一行行的 cool1 数数值是一样
27、样的 (000)。这是是为了模拟拟 SAPP R/33 中非常常常见的 MANDDT 列,通通常它不太太具有选择择性。第二二个名为 col22 的列设设计为带有有一些选择择性,因为为每隔 1100 行行就插入了了一个 a 数数值。 SSQL SServeer mooduloo (%) 操操作符用于于检测每第第 1000 行的插插入。最后后一个名为为 coll3 的列列的选择性性极高。每每一行都有有唯一的 col33 数值。 创建示例数数据 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令: creatte taable sapttest11 ( ccol1 charr(4)
28、 not nulll deffaultt 0000, col22 chaar(4) nott nulll deefaullt zzzzz, cool3 iint nnot nnull, filller charr(3000) deefaullt aabc ) deeclarre ccountter iint sset nnocouunt oon seet ccountter = 1 wwhilee (ccountter Exttendeed Heelp。单单击 Inndexees,然后后按照联机机指示执行行。 执行索引更更改 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令
29、: alterr tabble ssapteest1 dropp connstraaint saptt_c1 alteer taable sapttest11 addd connstraaint saptt_c1 PRIMMARY KEY NONCCLUSTTEREDD (cool1,ccol2,col33) crreatee cluusterred iindexx ckeey1 oon saaptesst1(ccol2) creeate indeex nkkey1 on ssapteest1(col33) 按 CTRRL + E 执行行命令。 第二组索引引的结果改进索引的的单行取数数据:se
30、electt * ffrom sapttest11 wheere ccol3 = 50000基于文本的的 ShoowPlaan 输出出: |-Boookmaark LLookuup(BOOOKMAARK:(Bmkk10000), OBJEECT:(pubbs.dbo.saaptesst1) WITTH PRREFETTCH) |-IIndexx Seeek(OBBJECTT:(ppubs.dbbo.sapttest11.nnkey11), SEEKK:(ssapteest1.cool3=50000) ORRDEREED) 等量图形显显示计划输输出。 统计 I/O 的查查询结果集集和数据库库 I
31、/OO (Quuery Anallyzerr): col1 col22 coll3 fiillerr 0000 a 55000 abc (1 rrow(ss) afffectted) Tablle ssapteest1.Scaan coount 1, llogiccal rreadss 5, physsicall reaads 00, reead-aaheadd reaads 00. Showpplan 现在表明明 SQLL Serrver 正在对索索引 nkkey1 使用索引引搜索而不不是索引扫扫描。索引引搜索是指指:SQLL Serrver 能够快速速浏览 nnkey11 B 树树结构(而
32、而不是象前前面例子中中的扫描索索引的叶级级),并使使用书签查查找来找到到与键值 50000 关联的的数据行。这一从索索引扫描到到索引搜索索的改变对对 I/OO 性能有有极大的影影响。要执执行查询,仅仅需要 SSQL SServeer 数据据高速缓存存中的 55 个 II/O,而而前一个例例子中,需需要 2440 个。 改进索引的的范围扫描描:sellect * frrom ssapteest1 wherre cool2 = a基于文本的的 ShoowPlaan 输出出: |-Cllusteered Indeex Seeek(OOBJECCT:(pubss.ddbo.sapptestt1.cke
33、yy1), SEEEK:(sapttest11.ccol2=a) ORRDEREED) 等量图形显显示计划输输出。 统计 I/O 的查查询结果集集和数据库库 I/OO (Quuery Anallyzerr): col1 col22 coll3 fiillerr 0000 a 1100 aabc 0000 aa 2000 abcc 0000 a 3300 aabc . . . 0000 a 9998000 abcc 0000 a 9999000 abcc 0000 a 11000000 abbc (11000 row(s) aaffeccted) Tabble sapttest11.Sccan
34、ccountt 1, logiical readds 488, phhysiccal rreadss 0, readd-aheead rreadss 0. Showpplan 再次表明明 SQLL Serrver 正在对索索引 ckkey1 使用索引引搜索而不不是索引扫扫描。在聚聚集索引搜搜索情况下下,不需要要进行书签签查找,因因为聚集索索引 B 树的叶级级已包含表表数据。索索引扫描到到索引搜索索的改变再再次对 II/O 性性能产生重重大而又积积极影响。要提取 1,0000 行,仅仅需要对 SQL Servver 高高速缓冲存存储器的 48 次次读取,而而在前一个个例子中则则需要 44,500
35、0 个 II/O。II/O 的的数量已大大大减少,因因此,完成成该查询不不再需要物物理磁盘 I/O,因因为所需要要的页在 SQL Servver 数数据高速缓缓存中已经经有了。物物理读取和和预读读取取的数字都都是零,这这就说明了了这一点。切记:预预读读取是是每个读取取为 644 KB 的物理磁磁盘读取,物物理读取是是每个读取取为 8 KB 的的物理磁盘盘读取。 索引分析的的观察与结结论从前面的例例子中可以以清楚看出出:索引设设计对 SSQL SServeer 查询询中的 II/O 性性能起着举举足轻重的的作用。范范围扫描的的例子特别别用来说明明:在 RR/3 环环境中,还还可能有适适合于除主主
36、键列以外外的列的聚聚集索引的的情况。特特别是对于于要在其上上执行报告告的大型表表来说,这这是很有可可能的。例例如,如果果大型表根根据日期列列进行报告告,但是日日期列未包包含在聚集集主键中,那那么对于聚聚集索引测测试日期列列的使用就就非常有用用。 在 SQLL Serrver 7.0 中,聚集集索引中所所包含的列列和字节越越多,该特特定表的非非聚集索引引越大。这这是因为该该表的聚集集索引和非非聚集索引引都使用构构成聚集索索引的列。非聚集索索引包含群群集键并使使用群集键键定位 rrowdaata。如如果表上没没有聚集索索引,则此此情况不适适用。相反反,在这种种情况下表表是作为堆堆集来管理理的。有关
37、关详细信息息,请参见见 SQLL Serrver 联机图书书。 既然非聚集集索引在非非聚集 BB 树结构构中包含群群集键,要要注意两种种影响。第第一,一定定要保持较较小的聚集集索引规模模,因为它它不仅影响响聚集索引引的大小和和性能,而而且还影响响该表中的的所有非聚聚集索引的的大小和性性能。第二二,一定要要记住非聚聚集索引包包含群集键键,因为在在非聚集索索引包含满满足查询(群群集键除外外)所需的的所有列的的情况下,查查询处理器器可以使用用键值列帮帮助涵盖查查询。 涉及群集键键的涵盖查查询示例以下是一个个简单的例例子,它说说明了在群群集键仅包包含非聚集集索涵盖给给定查询所所需的其它它信息的情情况下
38、,查查询处理器器将非聚集集索引用作作涵盖索引引,并无须须使用书签签查找从表表中提取数数据。有关关涵盖查询询与索引设设计的详细细信息,请请参见“MMicroosoftt SQLL Serrver 7.0 性能优化化指南”。 建立以下表表 (Quuery Anallyzerr) 在查询窗口口键入以下下命令: creatte taable sapttest22 (cool1 iint, col22 chaar(4) deffaultt a, fiillerr chaar(3000) ddefauult zzzzz) ddeclaare counnter int set couunterr = 11
39、whiile (couunterr = 10000) beegin inseert ssapteest2 (coll1) vvaluees (counnter) sett coounteer = couunterr + 11 endd inssert sapttest22 vallues (10001,ssap,R/33) ccreatte cllusteered indeex saap_CKK1 onn sapptestt2(cool1) creaate nnoncllusteered indeex saap_NCCK1 oon saaptesst2(ccol2) 按 CTRRL + E 执
40、行命令令。 显示并比较较以下两种种查询计划划 (Quuery Anallyzerr) 在查询窗口口键入以下下命令: selecct * fromm sapptestt2 whhere col22 = sap sellect col11,coll2 frrom ssapteest2 wherre cool2 = saap 分别选择每每个查询,然然后按 CCTRL + L 显示图形形显示计划划。 使用第二个个查询不需需要书签查查找,因为为非聚集索索引暗含群群集键,因因此涵盖了了查询。 当解决 RR/3 程程序长期存存在的问题题时,要牢牢记一种潜潜在的操作作方法,即即使用 ssp_reecomppi
41、le 标记存储储过程以便便快速重编编译。spp_reccompiile 命命令执行占占用时间极极少而且很很有用。ssp_reecomppile 命令迅速速标记存储储过程,以以便为存储储过程生成成新的查询询计划,它它反映表的的数据、索索引及统计计的最新情情况。 备注 在大大多数 RR/3 正正常操作情情况下,没没有必要运运行 spp_reccompiile,因因为在对其其有利的情情况下,SSQL SServeer 会自自动重新编编译存储过过程。但是是在 R/3 环境境中也有过过这样的情情况,即 SAP 和 Miicrossoft 已发现在在有长期存存在且性能能不良的更更新和批处处理过程运运行的表
42、中中运行spp_reccompiile 是是很有好处处的。 使用 spp_reccompiile 最最简便的方方法之一是是将表名称称作为命令令参数提交交。这样就就会为重新新编译标记记所有与表表名称关联联的存储过过程。例如如,如果 CCMSS 显示在在 VBRRP 表上上操作的更更新过程的的执行时间间特别长,那那么就有必必要在该表表上运行 sp_rrecommpilee。 执行 spp_reccompiile 的的示例 (Querry Annalyzzer) 键入 exxec ssp_reecomppile VBRRP。 按 CTRRL + E 执行行命令。 SQL SServeer 7.0 提
43、供供列和索引引统计的自自动生成与与维护。统统计辅助查查询处理器器确定最佳佳查询计划划。默认情情况下,为为所有索引引创建了统统计,并且且在为列统统计可能有有用和优化化器可能需需要对其进进行推测的的列编译查查询时,SSQL SServeer 会自自动创建单单列统计。 为避免对未未使用的统统计的长期期维护,SSQL SServeer 为自自动创建的的统计(仅仅指那些不不是索引创创建的附带带统计)制制定有效时时间。在几几次自动更更新之后,列列统计不再再被更新,而而是被丢弃弃。如果以以后需要,可可以再次创创建。统计计更新与创创建间的开开销上没有有什么大的的差异。此此有效时间间的制定不不影响用户户创建的统
44、统计。 为使性能最最佳,建议议使用自动动统计。统统计的自动动创建和更更新是 SSQL SServeer 7.0 的默默认配置。该建议不不适用于表表 VBHHDR、VVBMODD 和 VVBDATTA。对于于这些表,建建议关闭自自动统计。从本质上上讲,VBBHDR、VBMOOD 和 VBDAATA 的的大小极不不稳定,也也就是说它它们可能频频繁地从空空变成非常常大,然后后又变回空空。R/33 仅通过过主键访问问这些表。这些表的的其它统计计不会有什什么用,因因为使用主主键的同一一查询计划划也用于每每个访问。基于上述述这些原因因,在这些些表中关闭闭自动统计计功能是有有利的。 以下命令集集将防止以以后
45、在 VVBHDRR、VBMMOD 和和 VBDDATA 表上的统统计生成。 要关闭 VVBHDRR、VBMMOD 和和 VBDDATA 的自动统统计 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令: exec sp_aautosstatss VBHHDR,OFF exeec spp_auttostaats VVBMODD,OFFF eexec sp_aautosstatss VBDDATA,OFFF 按 CTRRL + E 执行行命令。 VBHDRR、VBMMOD 和和 VBDDATA 表上的现现有统计可可以通过以以下命令从从数据库中中删除。 除去现有统统计 (QQuer
46、yy Anaalyzeer) 使用 spp_hellpinddex 命命令确定要要除去的统统计名。例例如,要显显示任何 VBMOOD 上的的现有统计计名称,在在查询窗口口中键入下下列命令: exec sp_hhelpiindexx VBMMOD 按 CTRRL + E 执行行命令。查查询分析器器结果窗格格中的 iindexx_namme 列将将显示所有有索引与统统计的名称称。 在 droop sttatissticss 命令中中使用统计计名称。例例如,要除除去名为 _WA_Sys_VBELLN_0AAEA100A3 的的统计,在在查询窗口口中键入以以下命令: drop stattistiics
47、 VVBRP._WA_Sys_VBELLN_0AAEA100A3 按 CTRRL + E 执行行命令。 对表 VBBMOD、VBHDDR 和 VBDAATA 上上的所有统统计重复执执行 1 至 4 步骤。 DBCC SHOWWCONTTIG 命命令用于评评估表中出出现的物理理碎片(如如果有)等等级。 运行 DBBCC SSHOWCCONTIIG 的示示例 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令: declaare id iint sselecct iid = objeect_iid(ssapteest1) dbbcc sshowccontiig (id) 按 CT
48、RRL + E 执行命令令。 应该出现以以下输出: DBCC SHOWWCONTTIG sscannning sapptestt1 ttablee. Tablle:ssapteest1 (93335788364); inndex ID:11, daatabaase IID: 55 TABBLE llevell scaan peerforrmed. - PPagess Scaannedd: 41167 - Exttentss Scaannedd: 521 - Exxtentt Swiitchees: 5200 - AAvg.PPagess perr Exttent: 8.00 - SScan D
49、enssity Besst Coount:Actuual CCountt: 1000.000% 5521:5521 - Loogicaal Sccan FFragmmentaationn : 11.21% - Exxtentt Scaan Frragmeentattion : 0.996% - Avgg.Byttes FFree per Pagee: 1198.66 - AAvg.PPage Denssity (fulll): 97.55% DBCCC exeecutiion ccomplletedd.If DBCCC priintedd errror mmessaages, conntact
50、t youur syystemm admminisstrattor. Scan Denssity 和 Exttent Scann Fraagmenntatiion 有有助于评定定磁盘上表表的组织情情况。百分分之百 SScan Denssity 是最佳的的可能值,因因为它表明明使用中的的扩展的最最理想数量量(例如,每每个扩展八八个页面的的情况下,扩扩展完全得得到利用)。Exteent SScan Fraggmenttatioon 通过过表明表关关联的扩展展是否曾经经物理移动动至磁盘序序列之外,从从而提供页页拆分的附附加信息。Exteent SScan Fraggmenttatioon 仅在在表定
51、义了了聚集索引引的情况下下才是有用用的信息。 Avg. Pagee Dennsityy (fuull) 以百分数数表示每个个 SQLL Serrver 数据页上上的平均数数据量。有有时,这个个百分数也也称为数据据页的充满满度。高的的百分数说说明每个 8 KBB 读取带带入 SQQL Seerverr 高速缓缓冲存储器器的数据多多。总而言言之,高的的百分数说说明高速缓缓存将包含含更多的有有用信息。举个例子子,考虑一一下如果 DBCCC SHOOWCONNTIG 显示在您您的数据库库中有好几几个平均页页密度为 50% 的表的情情况。如果果这些表含含有检索的的多数数据据,那么 SQL Servver
52、 高高速缓冲存存储器将包包含多数仅仅包含 550% 有有用数据的的数据页。这就是说说 1 GGB 高速速缓冲存储储器仅包含含 5000 MB SQL Servver 数数据。如果果将读取到到高速缓冲冲存储器的的所有表的的平均页面面密度提高高到接近 100%,那么一一个 1 GB 的的高速缓冲冲存储器将将包含接近近 1 GGB 的 SQL Servver 数数据,这样样就好多了了。 如果访问某某表的查询询的应答时时间增长到到无法忍受受的程度,则则在该表上上运行 DDBCC SHOWWCONTTIG 命命令。如果果 Avgg. Paages per Exteent 大大大小于 8.0, Exten
53、t Scan Fragmentation大于 10-20%或 Avg. Page Density (full) 大大小于 100% 时,有必要考虑重建表的聚集索引,以便将表中的数据物理重排到物理连续的扩展中。重建聚集索引还提供了选择更完整的页面填充的选项,以便每 8 KB 页压缩更多的数据。 磁盘上有经经过良好压压缩而连续续的数据对对 I/OO 性能是是有利的,因因为 SQQL Seerverr 可以在在从此表中中提取数据据时利用有有序 I/O(比无无序磁盘 I/O 快得多)并并在每次读读取时将最最多的 SSQL SServeer 有用用数据带入入高速缓冲冲存储器。 FillFFactoor
54、是 CREAATE IINDEXX 语句的的可用选项项,它允许许控制索引引叶级的充充满度。表表聚集索引引的叶级是是表的数据据页,因此此使用 FFillFFactoor 选项项可以控制制使用聚集集索引的表表的数据页页的充满度度。 FillFFactoor 的默默认值为零零。默认值值对表内所所有数据页页都执行 100% 填充。Micrrosofft 的 IT 机机构一直在在其 SAAP R/3 环境境下的多数数 SQLL Serrver 表中使用用 FilllFacctor 的默认值值,性能极极好。建议议将 FiillFaactorr 的默认认值用做 R/3 数据库服服务器测试试的起点。 Fill
55、FFactoor 要牢牢记的主要要关系是应应处理好将将最大量的的数据打包包进每个数数据与索引引页的 II/O 性性能与避免免页拆分的的性能优势势之间的关关系。当需需要将数据据插入某页页,但该页页已满时,就就会发生页页拆分。此此时,必须须使用新页页,且数据据在旧页和和新页之间间重组。SSQL SServeer 7.0 增强强型存储结结构使页拆拆分操作比比 SQLL Serrver 6.5 中的效率率高得多;对页拆分分的性能处处罚也没有有那么多。这就解释释了为什么么默认 FFillFFactoor 设置置是一个好好的起点的的原因。如如果 DBBCC SSHOWCCONTIIG 命令令报告表中中出现
56、大量量物理碎片片,而且表表的响应时时间很差,那那么应该重重建该表上上的聚集索索引以使索索引 B 树结构保保持最佳形形态。 要重建主键键,需要 CREAATE IINDEXX 命令的的 DROOP_EXXISTIING 选选项。它还还为任一索索引的重建建提供了增增强性能。以下示例例假定前面面描述的原原始sapptestt1 表中中的索引正正在重建。 重建聚集主主键的示例例 (Quuery Anallyzerr) 在查询窗口口键入以下下命令: creatte unniquee cluusterred iindexx sappt_c11 on sapttest22(coll1,cool2,ccol3
57、) witth drrop_eexistting 按 CTRRL + E 执行行命令。 重建非聚集集主键的示示例 (QQueryy Anaalyzeer) 在查询窗口口键入以下下命令: creatte unniquee inddex ssapt_c1 oon saaptesst2(ccol1,col22,coll3) wwith dropp_exiistinng 按 CTRRL + E 执行行命令。 重建聚集索索引的示例例 (Quuery Anallyzerr) 在查询窗口口键入以下下命令: creatte cllusteered indeex ckkey1 on ssapteest2(col
58、22) wiith ddrop_exisstingg 按 CTRRL + E 执行行命令。 会有一些插插入活动频频率高的 R/3 环境,且且有必要测测试对数据据和索引页页稍低百分分率填充的的使用,以以便将页拆拆分情况控控制到最少少。有关在在 CREEATE INDEEX 语句句中使用FFillFFactoor 的语语法的详细细信息,请请参见 SSQL SServeer 联机机图书。 文件和文件件组设计 建议将 SSQL SServeer 文件件的大小定定为每个 RAIDD 数组至至少有三个个大小相等等的 SQQL Seerverr 文件,并并且这些文文件的大小小应设置为为它们预期期能够增长长到的最大大值。使用用 auttogroow 处理理调整大小小的紧急情情况。在确确定需要更更多的 II/O 处处理能力且且需要将新新的 RAAID 数数组联机时时,定义三三个文件有有助于加快快数据重新新分发的速速度。要将将数据移动动至新的数数组,可以以使用 AALTERR DATTABASSE 命令令修改数据据库,以便便将一个文文件放在新新的 RAAID 数数组中。然然后可以关关闭 SQQL Seerverr,可以迅迅速将该文文件移至新
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 物流课程设计实验
- 种蘑菇课程设计
- 中华人民共和国民法典知识竞赛题库及答案
- 2024幼儿园安全教育工作总结结尾(31篇)
- 2024年自来水公司年终工作总结(35篇)
- 液体混合装置plc课程设计
- 玉雕课程设计
- 食品行业客服工作总结
- 客房清洁员的工作总结
- 中医科医师工作总结
- 蒋诗萌小品《谁杀死了周日》台词完整版
- ICU病人早期康复-ppt课件
- 药品开发与上量-宿家荣
- 海商法术语中英对照
- 北京海淀区初一上数学期末试题(带标准答案)_
- 化工原理课程设计空气中丙酮的回收工艺操作
- 【家庭自制】 南北香肠配方及28种制作方法
- 厂房施工总结报告
- 先进物流理念主导和先进物流技术支撑下的日本现代物流
- 建筑小区生雨水排水系统管道的水力计算
- 公务员职务和级别工资档次套改及级别对应表
评论
0/150
提交评论