数据库引擎优化顾问功能

更新日期: 2006 年 7 月 17 日

数据库引擎优化顾问提供了一些新功能。通过这些新功能,无论是初学者还是有经验的数据库管理员都能对数据库进行优化,以获得更好的查询性能。以下各部分列出了数据库引擎优化顾问的新功能,并进行了说明:

工作负荷分析功能得到改进

  • 处理引用瞬态表(如临时表)的批。
  • 不会因为它不能分析某事件而终止优化,而是将该事件记录到优化日志中,再继续优化其他事件。
  • 分析和优化引用用户定义函数的查询。
  • 处理跟踪中的所有 USE 语句,这些语句在优化多个数据库时必不可少。
  • 使用工作负荷中的 LoginName 列(如果跟踪工作负荷过程中有此列),以便在执行事件的用户的环境中正确优化该事件。
  • 优化触发器中的语句。

可伸缩性增强

  • 使用工作负荷压缩,让数据库引擎优化顾问既可缩短优化所需的时间,又能生成高质量的优化建议结果。
  • 使用算法以避免生成重复的统计信息,从而减少优化期间发生的 I/O 数量。

优化集成

数据库引擎优化顾问可以权衡各种不同类型的物理设计结构(如索引、索引视图、分区)所提供的性能。不同结构可以在功能上有所重叠,以减少执行任何给定查询时的开销,从而可以考虑对多个设计结构进行集成配置,使数据库引擎优化顾问能够提供质量更高的建议。例如,如果仅考虑对一组表的聚集索引,再考虑对同一组表的水平范围分区,这并不能提供这两种物理结构配合使用时的工作情况。若要了解这两种结构配合使用的情况,优化工具必须执行集成优化。

优化多个数据库

应用程序经常要访问多个数据库以完成工作,因此,工作负荷会频繁引用多个数据库中的对象。与 Microsoft SQL Server 2000 中的索引优化向导不同,数据库引擎优化顾问可以同时优化多个数据库。用户可以指定一组要优化的数据库,而数据库引擎优化顾问会为所有选定数据库提出建议。有关此功能的详细信息,请参阅优化多个数据库

将优化开销分摊给测试服务器

优化较大的工作负荷会对所优化的服务器产生很大的开销。这是因为在优化过程中,数据库引擎优化顾问通常需要多次调用查询优化器。除了生产服务器之外,还可以使用测试服务器来消除此问题。

在这种情况下,您将优化一个测试服务器。测试服务器具备与生产服务器相同的环境。收到优化测试服务器而产生的数据库设计配置建议后,可以在维护期间将该建议应用于生产服务器。

使用测试服务器的传统方法,是将生产服务器的所有数据复制到测试服务器,再优化测试服务器,然后针对两台计算机的硬件差异调整产生的建议。数据库引擎优化顾问无需将数据复制到测试计算机,也无需两台计算机的硬件相同,就能利用测试服务器,从而节省了时间和资源。数据库引擎优化顾问只将元数据、统计信息和硬件参数从生产服务器导入测试服务器。然后,数据库引擎优化顾问对测试服务器执行大容量优化操作,而您可以在正常维护时将优化结果应用于生产服务器。有关此功能的详细信息,请参阅减轻生产服务器优化负荷

命令提示实用工具和图形用户界面工具

数据库引擎优化顾问提供以下两种用户界面:

  • dta 命令提示实用工具,可以通过编写脚本轻松组合数据库引擎优化顾问的功能。
  • 数据库引擎优化顾问图形用户界面 (GUI) 工具,可以轻松查看优化会话和结果。

仅删除优化

数据库中的物理设计结构会随时间积累,数据库管理员需要一种删除无用结构的方法。使用仅删除优化选项,可以确定那些不再使用,或对给定工作负荷用处甚少的现有物理设计结构。在使用 dta 命令提示实用工具时,可以使用 –fx 参数来指定此优化选项。如果使用的是 GUI,则可以在**“优化选项”选项卡中选中“仅评估现有 PDS 的使用率”**,以指定此选项。

如果选择此选项,数据库引擎优化顾问将永不建议任何新结构。因此,此选项不能与添加索引、索引视图或分区的其他选项一起使用。仅删除优化选项也不能与保存全部现有结构的选项一起使用。有关可用于数据库引擎优化顾问的优化选项的详细信息,请参阅可用的优化选项

XML 支持

可以在数据库引擎优化顾问 XML 输入文件中,定义可使用数据库引擎优化顾问 GUI 以及 dta 命令提示实用工具执行的所有优化操作。XML 输入文件使用已发布的数据库引擎优化顾问 XML 架构,该架构可以在 Microsoft SQL Server 2005 安装目录的以下位置中找到:

C:\Program Files\Microsoft SQL Server\90\Tools\Binn\schemas\sqlserver\2004\07\dta\dtaschema.xsd

您还可以从 Microsoft 网站上的数据库引擎优化顾问架构下载该架构。

通过使用 XML 输入文件,您可以在优化数据库时使用常用的 XML 工具,有经验的数据库管理员可以有更大的灵活性。例如,使用 XML 输入文件,您可以指定现有的和假设的物理设计结构(索引、索引视图、分区)的配置,然后,可以按应用了此配置的情况,使用 dta 命令提示实用工具优化数据库。这可以实现假设分析,又不会在优化前产生实施新配置的开销。有关数据库引擎优化顾问 XML 支持的详细信息,请参阅 XML 输入文件参考 (DTA)使用 XML 输入文件进行优化使用数据库引擎优化顾问进行探索性分析

用户指定的配置和假设分析支持

使用数据库引擎优化顾问,用户可以提供物理设计结构(索引、索引视图和分区策略)的假设配置作为优化输入。然后,可以按已经应用了该配置的情况,优化一个或多个数据库。这样一来,您就可以在发生应用这些结构产生的开销之前,对一组特定物理设计结构组作出假设分析。数据库引擎优化顾问 XML 架构完全支持此功能。可以在 XML 输入文件中指定希望处理的配置,然后使用 dta 命令提示实用工具启动优化会话。有关此功能的详细信息,请参阅使用数据库引擎优化顾问进行探索性分析

分析报告

优化会话完成后,数据库引擎优化顾问将以文本格式或 XML 格式生成若干分析报告。这些报告提供的信息包括工作负荷中发生的查询开销、工作负荷中事件的发生频率以及查询及其引用的索引之间的关系等。可以使用数据库引擎优化顾问 GUI 查看报告,也可以使用常用的 XML 编辑器打开以 XML 格式生成的报告。有关数据库引擎优化顾问生成的分析报告的详细信息,请参阅选择数据库引擎优化顾问报告

优化会话

在开始分析前,数据库引擎优化顾问会提示您创建一个唯一的名称或编号,来标识优化会话。完成工作负荷分析或停止分析后,数据库引擎优化顾问将保存优化会话信息,并将其与开始优化前提供的标识符关联起来。您可以使用会话标识符将现有会话重新载入数据库引擎优化顾问 GUI,在此可以查看优化结果和报告。使用优化会话可以轻松比较各个时间段的会话结果。有关使用优化会话的详细信息,请参阅使用会话监视器评估优化建议

使用 dta 实用工具时才可用的功能

使用数据库引擎优化顾问 GUI 时,以下各部分中列出的优化选项当前不可用。

在命令提示符下或使用 XML 输入文件时

在命令提示符下运行 dta 实用工具时,或通过使用 -ix 命令提示符参数将 XML 输入文件用于该实用工具时,您可以指定:

  • 优化日志名称(-e 命令提示符参数,或 TableName 元素)。
  • 要优化的事件数(-n 命令提示符参数,或 NumberOfEvents 元素)。
  • 由数据库引擎优化顾问推荐的索引中的最大键列数(-c 命令提示符参数,或 MaxKeyColumnsInIndex 元素)。
  • 数据库引擎优化顾问对推荐的配置提出的最小改进(-m 命令提示符参数,或 MinPercentageImprovement 元素)。

使用 XML 输入文件时

除了上述功能之外,在将 XML 输入文件与 dta 实用工具一起使用时,还可以:

  • 使用测试服务器/生产服务器方案,其中包括在测试服务器上创建 shell 数据库(TestServer 元素)。
  • 在 XML 输入文件中指定工作负荷内联(EventString 元素)。
  • 忽略工作负荷中的常量(IgnoreConstantsInWorkload 元素)。

在命令提示符下

除了上述功能之外,在命令提示符下运行 dta 实用工具时,还可以:

  • 指定静默模式,实用工具在该模式下运行时不显示任何反馈消息(-q 命令提示符参数)。
  • 优化并自动应用优化建议(-a 命令提示符参数)。

请参阅

其他资源

dta 实用工具
使用 XML 输入文件进行优化
减轻生产服务器优化负荷

帮助和信息

获取 SQL Server 2005 帮助

更改历史记录

发布日期 历史记录

2005 年 12 月 5 日

新增内容:
  • 添加了“使用 dta 实用工具时才可用的功能”一节。
更改的内容:
  • 更改了数据库引擎优化顾问 XML 架构的安装位置。