一、介绍数据库引擎优化顾问
数据库引擎优化顾问(Database Engine Tuning Advisor,DTA)根据查询优化器中的规则来评估查询,进而提出性能改进建议。DTA提供GUI,可以轻松查看当前的优化会话结果和以前的优化会话结果。
DTA与SQL跟踪输出协调工作。首先它捕获一个跟踪,跟踪中包含需要DTA分析的问题。然后DTA结合数据库来读取和评估这个跟踪输出。DTA可以提供以下建议:
(1)添加索引。
(2)删除索引。
(3)分割表。
(4)存储分配表。
二、工作负荷
DTA的工作负荷可以来源于一个跟踪文件、T-SQL脚本,或者是包含T-SQL命令的表。
虽然SQL Server Profiler可以跟踪到各类事件,但与DTA有关的事件只有以下几种:
(1)RPC: Starting
(2)RPC: Completed
(3)SQL: Batch Starting
(4)SQL: Batch Completed
三、分析工作负荷
1. 启动DTA
以下3种方式都可以启动DTA。
2. 登录到 SQL Server 实例
与SSMS登录到实例时一样的登录界面。
3. 创建新的优化会话
在“常规”选项卡上,在“会话名称”中输入一个名称。
选择一个“工作负荷文件”或“表”,然后在相邻的文本框中键入文件的路径或表(database_name.schema_name.table_name)的名称。
选择要对其运行在步骤 5 中选择的工作负荷的数据库和表。若要选择表,请单击“所选表”箭头。
选中“保存优化日志”以保存优化日志的副本。如果不希望保存优化日志的副本,请清除该复选框。在分析之后,可以通过打开会话并选择“进度”选项卡来查看优化日志。
4. 优化选项
高级选项
5. 开始分析
工具栏中依次有4个按钮:开始分析、停止分析并提供建议、停止分析、保存建议。
注意:如果在单击“停止分析”或“停止分析(并提供建议)”工具栏按钮之后单击“开始分析”工具栏按钮,数据库引擎优化顾问将启动新的优化会话。
6. 报告
四、对性能的影响
DTA针对每个可能的建议分析指定查询的开销。为了得到准确的查询成本,每次提交请求给优化器之前,DTA都会在工作负荷分析所使用的数据库中生成统计数据,这可能会加重所分析的数据库的工作负荷。建议:将生产数据库恢复到测试系统,再针对测试系统运行DTA。
五、使用 dta 实用工具优化数据库
dta 实用工具提供了一个命令提示符可执行文件,可以用来优化数据库。该实用工具使您能够在批处理文件和脚本中使用数据库引擎优化顾问的功能。dta 实用工具使用跟踪文件、跟踪表和 Transact-SQL 脚本作为工作负荷。还将使用符合数据库引擎优化顾问 XML 架构的 XML 输入。
本文结语:
数据库引擎优化顾问有可提供索引和分区的建议。