SQL Server提供了一个被称为数据库引擎调整顾问的工具。这个工具帮助为一个给定的工作负载确认一组最优的索引,而不需要对数据库结构或SQL Server内部结构的深入了解。它还能为一小部分有问题的查询建议调整选项。除了好处该工具也有坏处。应该正确地使用。
一、数据库引擎调整顾问机制可以直接选择SQL Server 2008=》性能工具=》数据库引擎调整顾问来使用它。 从Management Studio运行一个查询(选中所需查询,选择查询=》在数据库引擎调整顾问中分析查询),或者从Management Studio=》选择=》数据库引擎调整顾问中运行它。一旦该工具被打开并且连接到一个服务器,将看到如下所示窗口:
数据引擎调整顾问已经连接到一个服务器。从这里,开始概述工作负载以及希望调整的对象。创建一个会话名称是有必要的,可以为会话添加一个用于归档的标注。然后,必须选择一个工作负载(一个文件或一个表),并浏览到合适的位置。工作负载根据启动数据库调整顾问的方式定义。如果从查询窗口启动,将看到一“查询”无线按钮,“文件”和“表”按钮将被禁用。还必须为“工作负载分析”设置定义数据库并最终选择一个需要调整的数据库。
另外,通过“优化选项”选项卡,如下图所示:
选择“限制优化时间”定义希望数据库引擎调整顾问运行的时间,然后定义调整停止的日期和时间。数据库引擎调整顾问运行的时间越长,就越能提供更好的建议。可以选择考虑由数据库引擎调整顾问创建的物理设计结构类型,还可以设置分区策略,这样,调整顾问可以知道是否应该考虑将表和索引分区作为分析的一部分。如果数据和结构不能保证,分区不一定是个理想的结果。最后,可以定义所希望在数据库中保持的物理设计结构。 更改这些选项将使数据库引擎调整顾问用于改进性能的选择变宽或变窄。 单击“高级选项”按钮还有更多选项。
这个对话框中,可以限制建议的空间和包含在一个索引中的列数。最后可以确定,新的索引或索引中的改动是作为在线还是离线的索引操作完成。 一旦适当地定义了所有这些设置,就可以单击“开始分析”按钮开启动数据库调整顾问。所创建的会话保存在所针对的所有服务器实例的msdb数据库中,它显示正在分析的内容和所取得进展的细节。
数据库引擎调整顾问报告:
二、数据库引擎调整顾问实例1、调整一个查询 选中一个查询语句,右键=》数据库引擎优化顾问中分析查询。
设置基础如下:
设置时间:
虽然默认设置为1小时,但是本次建议1分钟就完成了。 最终建议如下,单击最右侧的定义,SQL Server优化顾问建议的优化如下:
SQL Server优化顾问建议我在Name列上建立一个非聚集索引。对于该查询来说,这是一个完全正确的建议。 有时候,对于单个查询的优化,SQL Server会建议卸载一些用不到的索引。但是优化应该是针对整个数据库的优化。 因此,在优化项目里,应该设置数据引擎调整顾问不能卸载任何已有的结构,这个优化选项里把“数据库中保持的物理设计结构”设置“从不保持任何现有的PDS”变为保持现有的PDS。这样就优化顾问就不会建议卸载现有的OBJECT了。
另外,在得到建议之后,可以在操作上面直接操作,评估建议,保存建议,以及应用建议。
单击应用建议:
单击确定后: 数据库引擎优化顾问将自动将建议执行到SQL Server:
2、调整一个跟踪工作负载 调整一个跟踪工作负载首先得有一个跟踪文件或跟踪表:
很遗憾,生成的建议居然为空:
这不意味着没有其他可能的改进,只是意味着调整顾问不总是能够发现所有可能的改进。 三、数据库引擎调整顾问的局限性数据库引擎调整顾问建议基于输入工作负载。如果输入的工作负载不是实际工作负载的真实表现,那么建议的索引有时候可能对一些在这个工作负载中丢失的查询有负面的影响。 对于一个生产服务器,应该确保SQL跟踪包含数据库工作负载的一个完整表现。对于大部分数据库应用程序,捕捉完整的一天的跟踪通常包含大部分数据库上执行的查询。其他一些数据库引擎调整顾问所需要考虑的事项/局限性如下:
|
|