SAPR3性能优化指南(1_第1页
SAPR3性能优化指南(1_第2页
SAPR3性能优化指南(1_第3页
SAPR3性能优化指南(1_第4页
SAPR3性能优化指南(1_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MS SQL Server 7.0 的 SAP R/3 性能优化指南1998 年 11 月发行读者本文档所提供的信息可以帮助SAP R/3 数据库管理员理解 Microsoft? SQL Server? 7.0 的各个方面。这些方面可以经过优化,从而在与SAP R/3 环境相关的特有数据库工作负荷条件下提供最佳性能。虽然本文档是为 SAP R/3 站点量身定制的,但是一定要注意本文档中描述的 SQL Server 功能 和优化技巧不仅仅适用于 SAP R/3 。大型到超大型数据库 (VLDB) 需要支持大量用户连接和大的 工作负荷,工作于这一环境中的数据库管理员将从本文的信息中获益匪浅。本篇有

2、关性能优化的文档将讨论 个逻辑部分。第一部分,讨论与 描述 SAP R/3 环境中 SQL Server 的重要配置选项。前面这两个部分直截了当,其中还包含了 在 SQL Server 的初始配置过程中几分钟就可以完成的一些步骤。 第三部分, 讨论 SQL Server 的 索引设计,因为它与 SAP R/3 相关。索引分析往往是一个极其棘手的过程,为使数据库性能最 佳需要持续不断地执行索引分析。 Microsoft TechNet 中的“ Microsoft 优化指南”应该作为本文第三部分的补充读物。该指南综合讨论硬件 I/O SQLServer 性能优化工具。第四部分,讨论 R/3 数据库

3、中的 SQL Server 应用。SAP R/3 环境中的 SQL Server 7.0最佳配置。本指南分为四Microsoft Windows NT? Server 相关的配置选项。第二部分,SQL Server 7.0 性能性能、索引设计以及文件和文件组的最佳Windows NT 配置Windows NT 页面文件的大小应该至少比服务器上安装的RAM 大三倍, 而且要至少有 10 亿字节(1 GB) 。设置页面文件大小1.2.3.在开始 菜单上,指向 设置 ,然后单击 控制面板。 双击系统 ,然后双击 性能 选项卡。单击更改,然后在 起始大小 (MB) 框中,输入页面文件的大小(按兆字节(

4、MB) 计)。4.单击 确定 。通常,VMM(虚拟内存管理器)已经根据 SQL Server安装的默认设置进行了适当的配置。检查和 /或配置 VMM 设置1.2.3.在开始 菜单上,指向 设置 ,然后单击 控制面板 。 双击网络 ,然后单击 服务 选项卡。双击服务器 ,选择 最大化网络应用程序吞吐量 ,然后单击 确定。配置最小影响的屏幕保护程序和墙纸1.在开始 菜单上,指向 设置 ,然后单击 控制面板 。2.双击显示 ,然后单击 背景 选项卡。3.选定图案为 (无),并选定墙纸为 (无)。4.单击 应用 ,然后单击 屏幕保护程序 选项卡。5.在屏幕保护程序 下,选定 Blank Screen

5、,然后选定 密码保护 。6.单击 应用 。一些多处理器服务器可以将联网 I/O 请求动态分发到最不繁忙的处理器。该硬件功能有助于防 止在服务于许多联网请求的系统中出现处理器瓶颈和不良网络性能。该功能通常称为对称中断分HAL 如高级 有关特定处发,使用该功能可以改进可扩展性能并防止出现在其它处理器还有剩余容量时某一个处理器却成 为瓶颈的情况。它在 Pentium 处理器系列的 Windows NT 4.0 HAL (硬件抽象层)中可以找到。 Windows? 2000 也支持该功能。不同处理器操作平台使用不同方法分发中断。网卡的中断分发是由每个处理器操作平台的 来控制的。 HAL 实施的中断方案

6、取决于处理器的性能。 某些处理器包含了中断控制硬件, 可编程中断控制器(APIC)。APIC允许处理器将中断路由到计算机上的其它处理器。 理器操作平台所使用的分发方法的详细信息,请咨询操作平台供应商。(NIC) 相关的延迟进程调 且 NIC 活动的系统中,每在默认情况下, Windows NT4.0 不使用对称中断分发,而是将与网卡 用 (DPC) 活动分配给系统中编号最大的处理器。在安装有多个NIC个额外的 NIC 的活动都指派到下一个编号最大的处理器。%Processor Time = 100%),那如果处理器频繁以百分之百的容量 (性能监视器所显示的Processor:操作而且一半以上时

7、间用于为 DPC 提供服务上(即如果 Processor: % DPC Time 50% 么可以通过调整 ProcessorAffinityMask 来提高性能。警告 注册表编辑器使用不当会导致严重的问题,有可能需要重新安装操作系统。 使用注册表编 辑器要特别小心 。 Microsoft 不保证能够解决因注册表编辑器使用不当而导致的问题。 建议您在 执行修改前备份注册表内容, 这样在注册表修改出现问题时就能够还原内容。 有关备份和还原注 册表信息的说明可以在注册表编辑器的联机帮助中找到。在能够进行对称中断分发的多处理器服务器上,将 P rocessorAffi nityMask数值项的值设置为

8、零。处理请求的处理器中。P rocessorAffi nityMaskCurre ntCo ntrolSet Services NDIS P arametersWin dows NT注册表中这样就会将网络I/O 请求动态分发到最有能力位于:HKEY_LOCAL_MACHINE System启动注册表编辑器以设置P rocessorAffi ni tyMask1. 在开始菜单上,单击 运行。2. 键入 regedt32。在注册表编辑器中找到适当关键字1.2.3.在窗口菜单中选择HKEY_LOCAL_MACHINE 。在注册表编辑器左边窗格中,双击SYSTEM。双击 CurrentControlS

9、et,双击 Services,双击 NDIS,然后双击 Parameters。将 ProcessorAffinityMask 设置为零1.2.3.在注册表编辑器右边窗格中,双击P rocessorAffi nityMask键入0 (零),然后单击确定。在注册表菜单上,单击退岀。SQL Server 配置SQLServer内存的推荐设置取决于R/3实例对数据库服务器的使用情况。如果SQL Server是作为专用数据库服务器而运行,建议SQL Server按照默认值动态调整它所需要的内存。|r/3实例1II最小值1最大值专用数据库服务器默认值1默认值更新实例已安装 RAM 的40%已安装RAM的6

10、5%中心实例已安装 RAM 的45%已安装RAM的45%在 有 2 GB RAM 的 中 心 实 例 上 设 置 内 存 的 例 子 (EnterpriseManager)1.2.3.在右边窗格中,双击 SQL Server Group 图标。双击 R/3 数据库服务器的 SQL Server 图标。单击 Memory 选项卡, 然后单击 Use a fixed memory size (MB)4.5.将 Use a fixed memory size (MB) 下的滑块移动到 900 。选定 Reserve physical memory for SQL Server,单击 Apply ,然

11、后单击 OK 。完成 SQL Server 的内存配置之后,建议使用 内存设置相等的物理内存空间。设置该选项意味着set working set size选项保留与 SQL ServerWindows NT 不转换出 SQL Server 页。配置设置工作集大小选项的例子(Enterprise Manager)1.2.3.SQL Server Group 图标。R/3 数据库服务器的 SQL Server 图标。然后选定 select Reserve physical memory for SQL Server在右边窗格中,双击双击单击Memory 选项卡,4.单击Apply ,然后单击OK

12、。SAP 测试显示出, 在大多数 R/3 最佳。该选项需要使用 SQL Server Query Analyzer数据库服务器操作环境下网络数据包大小为来设置。8,192 字节时性能设置网络数据包大小 (Query Analyzer)1. 键入 exec sp_configure network packet size, 81922. 键入 reconfigure with override 。 按 CTRL + E 执行以上命令。3.在专用服务器上,建议使用SQL Server priority boost 选项。设置优先级提升选项(Enterprise Manager)SQL Server

13、 Group 图标。SQL Server 图标。1. 在右边窗格中,双击2. 双击 R/3 数据库服务器的3. 单击 Processor 选项卡,然后在 Processor Control 框中,选定 Boost SQL Server priority on Windows NT 。建议将 SQL Server index create memory 选项配置为 16 MB 。该选项需要使用 SQL Server 查 询分析器来设置。设置索引创建内存选项 (Query Analyzer)1.2.3.键入 exec sp_configure index create memory, 16000

14、键入 reconfigure with override 。按 CTRL + E 执行以上命令。禁用VBHDR 、 VBMOD 和 VBDATA 表 的页 面锁 定 (QueryAnalyzer)1. 在查询窗口键入以下命令:exec sp_indexoption VBHDR,allowpagelocks,false exec sp_indexoption VBMOD,allowpagelocks,false exec sp_indexoption VBDATA,allowpagelocks,false2. 按 CTRL + E 执行以上命令。如果数据库服务器上的所有处理器的利用率都很高 (性

15、能监视器表明在多处理器服务器上所有处 理器的处理器利用率全部大于95%),那么就有必要打开SQL Server lightweight pooling 。在所有处理器都非常接近完全利用时, lightweight pooling 可以帮助恢复大约 5% 到 7% 的打开CPU。SQL Server lightweight pooling (Enterprise Manager)1.2.3.在右边窗格中,双击 SQL Server Group 图标。 双击 R/3 数据库服务器的 SQL Server 图标。 单击 Processor选项卡,选定 select Use Windows NT Fi

16、bers ,然后单击 Apply 。4.当提示重新启动SQL Server时,单击 Yes,然后单击 Ok。配置选项提供了不能执行 SQL Server 线程的特定处理器的规范。SQL Server affinity mask最好运用 SQL Server 关系掩码的默认设置,即零。关系掩码的设置为零表明允许在所有处理器 上执行 SQL Server 线程。几乎在所有情况下,该设置都会使性能最佳,因为它避免了在其它处 理器上有剩余容量的情况下而在某一台处理器上的SQL Server 连接非常繁忙的情况。Microsoft 的 IT 机构和参与 SQL Server 7.0 Early Adop

17、ter 关系掩码的默认设置,结果性能良好。计划的 SAP R/3 用户已运用了索引设计与维护“ Microsoft SQL Server 7.0 性能优化指南”提供了有关 信息。此文档可在“查找详细信息”处找到。SQL Server 索引和性能优化的重要大型的 SAP R/3 安装会有一些包含非常多行的 SQL Server 性能影响极大。表。有了大的表, 索引对数据库 I/O在单个数据库行或少量数据库行上搜索并执行的操作, 应该有一个基于提供最高级别选择性的一 列或几列所定义的非聚集或聚集索引。这样, SQL Server 查询处理器和存储引擎就能够将检索 行所需的 I/O 控制到最小化。

18、例如, 如果必须定期从非常大的 Orders 表中根据 orderid 来检 索单个定单记录,那么基于 orderid 列定义索引可以加快查询的速度就是有意义的。在多数数据库行上搜索和执行的操作应该基于定义范围扫描的列定义聚集索引。 份 Orders 表中检索所有定单的查询就是范围扫描的一个例子。在这种情况下, 期列就是聚集索引的最佳列。从非常大的七月Orders 表的日即将发行的 SAP R/3 4.5B 版本将带有一个影响 SQL Server 聚集索引选择灵活性的重要功能。 在 4.5B 版中, R/3 数据字典对除主键列以外的列聚集索引有被动支持。 被动支持的意思是: 在 数据库表已改

19、变以致于聚集索引从主键移至了另一列或列集的情况下, SAPR/3 数据字典会识别 并记录 SQL Server 聚集索引的位置。 创建聚集索引需要使用与 R/3 工具对应的 SQL Server 工 具。但是,聚集索引的位置在创建之后不会在数据库转换和R/3 版本升级过程中丢失。4.5B 以后的 SAP R/3 版本中有可能包含 除前面所讲到的 R/3 Data Dictionary 列(除主键列以外)的聚集索引创建。SQL Server 供的支持外,聚集索引的积极支持。 积极支持的意思是:R/3 工具还将支持在 SQL Server 表上的R/3 报告查询性能的 R/3 数据库管理员的想法有

20、很聚集索引支持中的这些更改与希望改进其 大出入。运行 SAP R/3 的大型公司的月末和季度报告可能会使用数据库服务器上的范围扫描。 通常情况下会是这样一种情况: 在大表上所执行的范围扫描将不以与定义表的主键相同的列为基 础。目前, SAP R/3 SQL Server 数据库实施将所有表上的主键配置为聚集主键。某些情况对测 试非主键组成部分且常常为了报告目的而用于大型表的列的聚集索引的使用非常有利。 ALTER TABLE 命令用于将聚集主键更改为非聚集主键。SQL Server 7.0 性能优化指南”。以下索引分析示例讨论了这样一种情况, 即将聚集主键更改为非聚集主键以便聚集索引可以基于

21、另一列进行定义并预排将聚集主键更改为非聚集主键所涉及的步骤,这一点是有意义的。有关聚集和非聚集索引选择的详细信息,应参阅“ MicrosoftSAPR/3 在 ST04 事务处理中提供 MSSTATS 工具,可以帮助 R/3 数据库管理员跟踪数据库服务 器上所执行的 SQL Server 存储过程的资源占用。所有 R/3 与数据库服务器的正常交互作用都 使用存储过程执行。MSSTATS提供有助于根据资源使用区分存储过程的信息。MSSTATS返回的信息的例子包括: 存储过程的调用次数、 用于调用存储过程的平均和最长时间、 存储过程调用所 返回的行平均数和总行数、 存储过程是否使用了游标、 存储过

22、程用于提取的时间与空闲时间等等。MSSTATS提供了用于确定在 R/3数据库服务器上所运行的费用最高的存储过程的重要工具。性 能分析应集中于这些费用最高的查询。使用以下 SQL Server 表示例可以模仿与许多 将使用该此测试表进行分析。其目的是说明如何在 Server 索引。SAP R/3 表非常类似的数据模式。两个示例查询R/3 数据库服务器环境中很好地利用 SQL示例数据以下脚本创建名为选择性。每一行的 列,通常它不太具有选择性。第二个名为 就插入了一个 a 数值。 SQL Server modulo (%)saptest1 的表并在其中加入 col1 数值是一样的 (000) col

23、2后一个名为 col3 的列的选择性极高。每一行都有唯一的100,000 个记录。第一个名为。这是为了模拟 SAP R/3 的列设计为带有一些选择性, 操作符用于检测每第 col3 数值。col1 的列没有 中非常常见的 MANDT 因为每隔 100 行 100 行的插入。最创建示例数据 (Query Analyzer)1. 在查询窗口键入以下命令:create table saptest1 (col1 char(4) not null default 000,col2 char(4) not null default zzzz, col3 int not null, filler char(

24、300) default abc )declare counter int set nocount onset counter = 1while (counter Extended Help 。单击 Indexes ,然后按照联机指示执行。执行索引更改 (Query Analyzer)1. 在查询窗口键入以下命令:alter table saptest1 drop constraint sapt_c1alter table saptest1 add constraint sapt_c1 PRIMARY KEY NONCLUSTERED (col1,col2,col3)create cluste

25、red index ckey1 on saptest1(col2)create index nkey1 on saptest1(col3)2. 按 CTRL + E 执行命令。第二组索引的结果改进索引的单行取数据: select * from saptest1 where col3 = 5000基于文本的 ShowPlan 输出:|-Bookmark Lookup(BOOKMARK:(Bmk1000), OBJECT:(pubs.dbo.saptest1) WITH PREFETCH)SEEK:(saptest1.col3=5000)|-Index Seek(OBJECT:(pubs.dbo.

26、saptest1.nkey1), ORDERED)等量图形显示计划输出。统计 I/O 的查询结果集和数据库 I/O (Query Analyzer) col1 col2 col3 filler 000 a 5000 abc (1 row(s) affected)Table saptest1.Scan count 1, logical reads 5, physical reads 0, read-ahead reads 0.索引搜索是,并I/O 性Showplan 现在表明 SQL Server 正在对索引 nkey1 使用索引搜索而不是索引扫描。 指: SQLServer 能够快速浏览 nk

27、ey1 B 树结构(而不是象前面例子中的扫描索引的叶级) 使用书签查找来找到与键值 5000 关联的数据行。这一从索引扫描到索引搜索的改变对 能有极大的影响。要执行查询,仅需要 SQL Server 数据高速缓存中的 5 个 I/O ,而前一个例 子中,需要 240 个。改进索引的范围扫描: select * from saptest1 where col2 = a基于文本的 ShowPlan 输出:|-Clustered Index Seek(OBJECT:(pubs.dbo.saptest1.ckey1),SEEK:(saptest1.col2=a) ORDERED)等量图形显示计划输出。

28、统计 I/O 的查询结果集和数据库 I/O (Query Analyzer) col1 col2 col3 filler 000 a 100 abc 000 a 200 abc 000 a 300 abc000 a 99800 abc 000 a 99900 abc 000 a 100000 abc(1000 row(s) affected)Table saptest1.Scan count1, logical reads 48, physical reads 0,read-ahead reads 0.Showplan 再次表明 SQL Server 正在对索引 ckey1 使用索引搜索而不是

29、索引扫描。 在聚集索引 搜索情况下,不需要进行书签查找,因为聚集索引 B 树的叶级已包含表数据。索引扫描到索引 搜索的改变再次对 I/O 性能产生重大而又积极影响。要提取 1,000 行,仅需要对 SQL Server 高速缓冲存储器的 48 次读取,而在前一个例子中则需要 4,500 个 I/O 。 I/O 的数量已大大减 少,因此,完成该查询不再需要物理磁盘 I/O ,因为所需要的页在 SQL Server 数据高速缓存中 已经有了。物理读取和预读读取的数字都是零,这就说明了这一点。切记:预读读取是每个读取 为 64 KB 的物理磁盘读取,物理读取是每个读取为8 KB 的物理磁盘读取。索引

30、分析的观察与结论从前面的例子中可以清楚看出:索引设计对 SQL Server 查询中的 I/O 性能起着举足轻重的作 用。范围扫描的例子特别用来说明:在 R/3 环境中,还可能有适合于除主键列以外的列的聚集 索引的情况。特别是对于要在其上执行报告的大型表来说, 这是很有可能的。 例如, 如果大型表根据日期列进行报告, 但是日期列未包含在聚集主键中, 非常有用。那么对于聚集索引测试日期列的使用就在 SQL Server 7.0 中,聚集索引中所包含的列和字节越多, 因为该表的聚集索引和非聚集索引都使用构成聚集索引的列。 键定位 rowdata 。如果表上没有聚集索引,则此情况不适用。相反,在这种

31、情况下表是作为堆集 来管理的。有关详细信息,请参见该特定表的非聚集索引越大。这是非聚集索引包含群集键并使用群集SQL Server 联机图书。既然非聚集索引在非聚集 B 树结构中包含群集键,要注意两种影响。第一,一定要保持较小的 聚集索引规模, 因为它不仅影响聚集索引的大小和性能, 而且还影响该表中的所有非聚集索引的 大小和性能。第二,一定要记住非聚集索引包含群集键,因为在非聚集索引包含满足查询(群集 键除外)所需的所有列的情况下,查询处理器可以使用键值列帮助涵盖查询。涉及群集键的涵盖查询示例以下是一个简单的例子, 它说明了在群集键仅包含非聚集索涵盖给定查询所需的其它信息的情况 下,查询处理器

32、将非聚集索引用作涵盖索引, 并无须使用书签查找从表中提取数据。 有关涵盖查 询与索引设计的详细信息,请参见“ Microsoft SQL Server 7.0 性能优化指南”。建立以下表 (Query Analyzer)1. 在查询窗口键入以下命令:create table saptest2 (col1 int, col2 char(4) default a, filler char(300) default zzzz)declare counter int set counter = 1 while (counter = 1000) begininsert saptest2 (col1) v

33、alues (counter) set counter = counter + 1 endinsert saptest2 values (1001,sap,R/3)create clustered index sap_CK1 on saptest2(col1) create nonclustered index sap_NCK1 on saptest2(col2)2. 按 CTRL + E 执行命令。显示并比较以下两种查询计划 (Query Analyzer)1.在查询窗口键入以下命令:select * from saptest2 where col2 = sap2.select col1,c

34、ol2 from saptest2 where col2 = sap分别选择每个查询,然后按 CTRL + L 显示图形显示计划。使用第二个查询不需要书签查找,因为非聚集索引暗含群集键,因此涵盖了查询。R/3 程序长期存在的问题时,要牢记一种潜在的操作方法,即使用 sp_recompile 命令执行占用时间极少而且很有用。 令迅速标记存储过程, 以便为存储过程生成新的查询计划, 它反映表的数据、 情况。当解决存储过程以便快速重编译。sp_recompile 标记 sp_recompile 命 索引及统计的最新备注 在大多数 R/3 正常操作情况下, 没有必要运行 sp_recompile ,因

35、为在对其有利的情况下, SQL Server 会自动重新编译存储过程。但是在 R/3 环境中也有过这样的情况,即 SAP 和 Microsoft 已发现在有长期存在且性能不良的更新和批处理过程运行的表中运行 是很有好处的。sp_recompile使用 sp_recompile 最简便的方法之一是将表名称作为命令参数提交。这样就会为重新编译标 记所有与表名称关联的存储过程。 例如,如果 CCMS 显示在 VBRP 表上操作的更新过程的执行时 间特别长,那么就有必要在该表上运行sp_recompile 。执行sp_recompile 的示例 (Query Analyzer)1.2.键入 exec

36、sp_recompile VBRP 。 按 CTRL + E 执行命令。SQLServer 7.0 提供列和索引统计的自动生成与维护。统计辅助查询处理器确定最佳查询计划。 默认情况下, 为所有索引创建了统计, 并且在为列统计可能有用和优化器可能需要对其进行推测 的列编译查询时, SQL Server 会自动创建单列统计。为避免对未使用的统计的长期维护, 附带统计)制定有效时间。在几次自动更新之后,列统计不再被更新, 要,可以再次创建。 统计更新与创建间的开销上没有什么大的差异。 户创建的统计。SQL Server 为自动创建的统计(仅指那些不是索引创建的而是被丢弃。如果以后需 此有效时间的制定

37、不影响用为使性能最佳,建议使用自动统计。统计的自动创建和更新是建议不适用于表 VBHDRVBMOD和VBDATA对于这些表,建议关闭自动统计。从本质上讲,VBHDR VBMOD和VBDATA的大小极不稳定,也就是说它们可能频繁地从空变成非常大,然后又变回空。R/3 仅通过主键访问这些表。 这些表的其它统计不会有什么用, 因为使用主键的同一查询计划也 用于每个访问。基于上述这些原因,在这些表中关闭自动统计功能是有利的。SQL Server 7.0 的默认配置。该以下命令集将防止以后在 VBHDR、VBMOD和VBDATA表上的统计生成。要关闭 VBHDR 、 VBMOD 和 VBDATA 的 自

38、动统 计 (QueryAnalyzer)1.在查询窗口键入以下命令:exec sp_autostats VBHDR,OFF exec sp_autostats VBMOD,OFF exec sp_autostats VBDATA,OFF2.按 CTRL + E 执行命令。VBHDR、VBMOD和VBDATA表上的现有统计可以通过以下命令从数据库中删除。除去现有统计 (Query Analyzer)1.使用 sp_helpindex 命令确定要除去的统计名。例如, 要显示任何 VBMOD 上的现有统计名称,在查询窗口中键入下列命令:exec sp_helpindex VBMOD2.按 CTRL

39、+ E 执行命令。 查询分析器结果窗格中的 index_name 列将显示所有索引与统 计的名称。3.在 drop statistics 命令中使用统计名称。例如,要除去名为_WA_Sys_VBELN_0AEA10A3 的统计, 在查询窗口中键入以下命令:drop statistics VBRP._WA_Sys_VBELN_0AEA10A34.5.按 CTRL + E 执行命令。对表 VBMOD 、VBHDR 和 VBDATA 上的所有统计重复执行 1 至 4 步骤。DBCC SHOWCONT命令用于评估表中岀现的物理碎片(如果有)等级。运行 DBCC SHOWCONTIG 的示例 (Quer

40、y Analyzer)1. 在查询窗口键入以下命令:declare id intselect id = object_id(saptest1) dbcc showcontig (id)2. 按 CTRL + E 执行命令。3. 应该出现以下输出:DBCC SHOWCONTIG scanning saptest1 table.Table:saptest1 (933578364); index ID:1, database ID: 5 TABLE level scan performed.- Pages Scanned.- Extents Scanned: 4167: 521- Extent Sw

41、itches: 520- Avg.Pages per Extent- Scan Density Best Count:Actual Count: 100.00% 521:521- Logical Scan Fragmentation :11.21%- Extent Scan Fragmentation- Avg.Bytes Free per Page.- Avg.Page Density (full): 8.0: 0.96%: 198.6: 97.55%DBCC execution completed.If DBCC printed error messages, contact your s

42、ystem administrator.仅在表Scan Density 和 Extent Scan Fragmentation 有助于评定磁盘上表的组织情况。 百分之百 Scan Density 是最佳的可能值, 因为它表明使用中的扩展的最理想数量 (例如, 每个扩展八个页面的 情况下,扩展完全得到利用)。 Extent Scan Fragmentation 通过表明表关联的扩展是否曾经 物理移动至磁盘序列之外,从而提供页拆分的附加信息。Extent Scan Fragmentation定义了聚集索引的情况下才是有用的信息。有时,这高速缓冲存Avg. Page Density (full) 以

43、百分数表示每个 SQL Server 数据页上的平均数据量。 个百分数也称为数据页的充满度。高的百分数说明每个 8 KB 读取带入 SQL Server 储器的数据多。总而言之,高的百分数说明高速缓存将包含更多的有用信息。 举个例子,考虑一 下如果DBCC SHOWCONTI显示在您的数据库中有好几个平均页密度为50%的表的情况。如果这些表含有检索的多数数据,那么 SQL Server 高速缓冲存储器将包含多数仅包含 50% 有用数据 的数据页。这就是说 1 GB 高速缓冲存储器仅包含 500 MB SQL Server 数据。如果将读取到高 速缓冲存储器的所有表的平均页面密度提高到接近10 0 % ,那么一个 1 GB 的高速缓冲存储器将包含接近 1 GB 的 SQL Server 数据,这样就好多了。如果访问某表的查询的应答时间增长到无法忍受的程度,则在该表上运行DBCC SHOWCONTI(命令。如果 Avg. Pages per Extent 大大小于 8.0 , Extent Scan Fragmentation 大于 10-20% 或 Avg. Page Density (full)大大小于 100% 时,有必要考虑重建表的聚集索引,以便将表中的数据物理重排到物理连续的扩展中。重建聚集索引还提供了选择更完整的页面填充的选项, 以便每 8 KB 页压缩

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论