使用跟踪数据来实现索引优化向导

2/9/2008来源:Oracle教程人气:5095


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