使用SQL Server事件探查器工具,你可用一个捕获到的跟踪来收集有关服务器的重要信息。与索引优化向导(Index Tuning Wizard,ITW)以及正确的常规索引信息配合,这种跟踪可帮助你调试SQL Server应用程序并优化性能。本文将逐步指导你获取跟踪数据,并在ITW中实际使用它。
SQL Server性能优化
从SQL Server事件探查器捕获到的任何跟踪都可用于ITW。一旦收集好你的跟踪(收集到文件或数据库表中),就可运行ITW,并利用你刚才捕获的数据。
选择一个向导
要初始化ITW(参见图A),请单击【运行向导】图标,再选择【管理】|【索引优化向导】。另外,还可直接在命令提示行中执行itwiz.exe,这在远程调节SQL Server时尤其有用。
接着(参见图B),你可更改事先选择的服务器,它应呈现为灰色,再从下拉列表中选择想优化的数据库。
还可在图B中撤选或选择【保留所有现有索引】复选框。如果撤选,SQL Server就会尽最大努力来推荐最佳的索引架构,但同时也会增加操作时间,而且会对数据库带来最高的负荷。
还可让SQL Server为你创建索引视图,它将作为向导输出内容的一部分提供。索引视图可用于多种场合。图B最后一部分包含了优化模式选项。注意如果选择彻底优化,那么整个过程会花费可观的时间,具体取决于工作文件的大小、记录数以及你准备分析的索引数目。
在此过程中,SQL Server的性能会受到严重影响,所以在操纵这些选项时,要特别注意你的工作环境。例如,如果你有一个生产型OLTP数据库,但日志记录到一个OLAP服务器,那么应该针对OLAP数据库来运行向导,再将建议的更改应用于这两个系统。
如图C所示,你可使用文件或数据库跟踪来初始化向导。第3个选项(在图C中呈现灰色不可用状态)只有在你从查询分析器中运行ITW时才可使用。显然,查询分析器允许你定位一个较小的问题集,而不必面对一个包容面更广的事件探查器跟踪。
图D展示了高级选项。可在此设置3个参数。首先,你可限制ITW要在跟踪中使用的查询数。对于较大的跟踪,这有助于缩短ITW的工作时间。但是,这个选项的精确度不够高,因为一旦指定的数目低于查询总数,那么ITW使用的查询将是随机选择的。其次,你可指定索引最多消耗多少MB的空间。最后,你可设置ITW尝试实现的最大列数,默认是16个列。
图E显示了你如何选择想让向导检查的表。显然,你的跟踪需要针对这些表捕获最有代表性的活动,向导才能最好地发挥作用。同样地,选择的表越多,优化时间越长。
图F显示了向导的建议,你可选择要由向导采取的行动(如果有的话)。
还可查看如图G所示的分析,更好地理解向导给出的建议。
接着,你可选择是让SQL Server立即应用更改(如图H所示),还是安排在以后某个时间进行。另外,还可将包含了推荐更改的一个脚本保存下来。
最后,在如图I所示的屏幕中,可以选择退回去查看以前的屏幕,选择完成,或者选择取消向导。