SQL Server跟踪数据实现索引优化向导
作者:shayang 发布时间:2009-02-13 17:14:00
使用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所示的屏幕中,可以选择退回去查看以前的屏幕,选择完成,或者选择取消向导。


猜你喜欢
- //前一阵子以为学习需要就在自己的本本上装了个mysql数据库。今天想把结合jsp做的项目拿到学校机器上用用,但发现数据库数据怎么迁移,首先
- 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHO
- 操作说明:选择多个PDF文件,执行完合并后会生成一个新的PDF文件,这个新的PDF文件包含所有源PDF文件的页面。将相关的三方模块导入到代码
- 数据库中有张表User,字段是ID和Name,ID自增。 利用存储过程实现插入时返回当前的行数 CREATE PROC Proc_Inser
- 定义通用视图修改 book/models.py 代码中的 AuthorInfo 类,如果一致则不必修改class AuthorInfo(mo
- 做一个简单的小实例:目录结构如下:demo1.pyclass MyClass():def __init__(self,x,y):  
- 最近和Sobin在做一个精品课程的项目,因为用到一个固定的id作为表间关联,所以在前一个表插入数据后要把插入数据生成的自增id传递给下一个表
- 本文实例讲述了javascript限制用户只能输汉字中文的方法。分享给大家供大家参考。具体实现方法如下:要验证函数时我们必须明白,如果是汉字
- 均方损失函数:这里 loss, x, y 的维度是一样的,可以是向量或者矩阵,i 是下标。很多的 loss 函数都有 size_averag
- 我想从列表中取出一部分拿来使用,可以创建切片,指定需要使用的第一个元素和最后一个元素的索引使用例子,说明切片的使用#创建一个数字列表,代表我
- delattr 函数用于删除属性。delattr(x, 'foobar') 相等于 del x.foobar。语法setat
- 一 描述1030. 距离顺序排列矩阵单元格 - 力扣(LeetCode) (leetcode-cn.com)给定四个整数 row
- 什么是接口接口是一种定义规范,规定了对象应该具有哪些方法,但并不指定这些方法的具体实现。在 Go 语言中,接口是由一组方法签名(方法名、参数
- Zabbix 是一款强大的开源网管监控工具,该工具的客户端与服务端是分开的,我们可以直接使用自带的zabbix_get命令来实现拉取客户端上
- 背景在上篇文章,我们系统地学习了where 1=1 相关的知识点,大家可以回看《MySQL中where 1=1方法的使用
- Python中的type()函数和isinstance()函数是两个常用的类型判断函数,它们可以用来判断变量的类型,接下来让我们一起来看一下
- Jupyter是一个在线的代码编辑工具,想要调用本地的文件则需要切换路径到相应的文件路径下切换路径要在打开Jupyter之前完成操作:cd
- Python是很好的爬虫工具不用再说了,它可以满足我们爬取网络内容的需求,那最简单的爬取网络上的图片,可以通过很简单的方法实现。只需导入正则
- 变量(variable)是Python语言中一个非常重要的概念。变量的主要作用就是为Python程序中的某个值起一个名字。类似于“张三”、“
- 其实这篇文章挺早之前就写了,但是由于sf保存方面的bug,所以当时写了一大堆,结果没保存,觉得这个没写完是个不小的遗憾,今天正好有空,就给补