2.7DatabaseEngineTuningAdvisor数据库引擎优化顾问_SQLServer2005数据库开发详解

文章作者 100test 发表时间 2007:03:13 21:47:20
来源 100Test.Com百考试题网


2.7 Database Engine Tuning Advisor数据库引擎优化顾问

SQL Server 2005 将之前版本的索引向导(Index Tuning Wizard)单独扩增成一个应用程序,称为“Database Engine Tuning Advisor”。协助用户在尚未深入了解数据库结构、索引、数据分布统计、索引视图(Indexed View)和数据分区的运行原理之前,就能够有效地创建这些对象以提升系统性能,而不至于误用导致性能更差。

“Database Engine Tuning Advisor”会针对一个以上数据库的运行情况分析其工作负荷。工作负荷指的是针对一或多个数据库执行的多句 T-SQL 语法。当优化数据库时,“Database Engine Tuning Advisor”会利用存在硬盘上的跟踪文件,或存在 SQL Server 数据库内的跟踪数据表,抑或是 T-SQL 脚本[1]来作为工作负荷的输入。你可以利用 Management Studio 中的查询编辑器来创建 T-SQL 脚本工作负荷,或是用 Profiler 工具程序,在“使用模板”选项选择“Tuning”,以录制存放在跟踪文件或跟踪数据表的工作负荷。

若应用程序需要使用多个数据库以完成工作,则我们直接编写的 T-SQL 访问语法,或通过 SQL Trace 机制以及 Profiler 工具程序录制的工作负荷内容,经常一句语法访问多个数据库内的对象。“Database Engine Tuning Advisor”能同时优化多个数据库,这就比以往版本的“索引向导”有用多了。遇到多数据库对象,以往的“索引向导”就放弃优化L。现今用户可以在 “Database Engine Tuning Advisor”指定要优化的数据库集合,便能对所有使用到且被选取的数据库提出结构上的建议。

另一个与前版不同的是:“Database Engine Tuning Advisor”提供了“限制优化时间”选项,要求它在期限前交出报告。避免你急着要结果,但它却一直跑个不停,或在某个时间点一定要退出,不然会干扰在线系统的执行。当然,若分析的数据库结构和查询负荷复杂,则时间充裕才可能提供较精确的分析。

通过“开始”菜单上的“程序”-“Microsoft SQL Server 2005”-“性能工具”-“Database Engine Tuning Advisor(数据库引擎优化顾问)”选项,或是在 Management Studio、Profiler 等程序环境内,都可以通过主菜单打开“Database Engine Tuning Advisor”工具程序,其执行界面如图2-20所示:
------------------------------------------------------------------------------------------------------------------------------------------------------------
[1] 若要直接分析某些 T-SQL 脚本,可通过 Management Studio 查询编辑器输入查询语法,并选取想要分析的部分。接着以鼠标右键点选所用的查询,并选择快捷选单中的“在 Database Engine Tuning Advisor 中分析查询”选项。此时 Management Studio 会将“Database Engine Tuning Advisor”打开,并赋予反白的语法。此时你会在如图2-20 的“常规”页签上方“工作负荷”部分看到多一个“查询”选项,默认已经设置好且不能改变(此处笔者是直接指定负荷文件,所以并没有该选项)。
------------------------------------------------------------------------------------------------------------------------------------------------------------


图2-20 通过“常规”和“优化选项”页签设置会话的内容

打开“Database Engine Tuning Advisor”后,首先可以通过主菜单“文件”-“新建会话”菜单建立会话(session),并在图2-20左上方“会话监视器”窗口中,通过鼠标右键点选某个会话,以快捷菜单的“重新命名会话”菜单,或是在“常规”页签的“会话名称”给予一个有意义的名字。

会话是进行分析的管理单位,内容包含创建数据库连接的信息、“工作负荷”的来源、需要优化的数据库与数据表、优化的选项设置以及分析的结果等等,在图形界面中可以查看目前与以往优化会话的结果。而主菜单“文件”内的子选项可以让你管理这些历来的会话。

接着是定义工作负荷,默认可以指定“文件”或“数据表”两种方式,其中文件可以指定 .sql.xml.trc 三种格式的文件。.sql 文件内放置一般的 T-SQL 语法,其他两种格式则是 Profiler 所录制的工作负荷。而“数据表”则是指定 Profiler 存放跟踪结果的数据表。

“Database Engine Tuning Advisor”会利用查询最佳化工具来分析工作负荷中的语法,以建议增加、删除或修改数据库中的实例对象结构。内容包括聚集索引、非聚集索引的最佳设计方式、对齐或非对齐[1]的数据分区、可用的索引视图以及需要增加的数据分布统计等。

并提供包括索引用法、数据库、数据表与字段之间的语法使用百分比以及工作负荷中的查询性能,套用变更后性能改善的比例等许多报表。

“Database Engine Tuning Advisor”执行完毕后显示的建议与报表如图2-21及2-22所示:
-------------------------------------------------------------------------------------------------------------------------------------------------------
[1] 虽然定义索引分区时,可以与其下数据表的分区定义不同。不过,通常是先设计数据表分区之后,再对数据表建立索引,这时 SQL Server 会使用与数据表相同的“数据分区方案”和“分区数据列”分区索引。因此,索引和数据表的的分区定义相同,这称为“对齐”。


相关文章


2.6SQLServerSurfaceAreaConfiguration_SQLServer2005数据库开发详解
2.7DatabaseEngineTuningAdvisor数据库引擎优化顾问_SQLServer2005数据库开发详解
TestKing070-299V14
强档贡献:MCSE2003最新学习资料
澳大利亚华人论坛
考好网
日本华人论坛
华人移民留学论坛
英国华人论坛