目前,我面临的是一个生产SQL Server数据库,其中有人添加了DTA中几乎所有缺失的索引建议。
表单如何确定索引是必需的还是必需的我了解到,有DMV视图,可以用来延迟有关实际索引使用和缺少索引的信息。
来自贾森·斯特拉特的脚本只使用该视图中的当前信息,而一天的乐趣-自动索引自动!则将这些视图中的一些信息保存到表中。
另一边的DTA需要规划何时运行分析器,选择要配置什么,并在运行时对性能有一定的影响。
我的印象是,使用DTA作为第一步调优工具只是浪费时间,而且其结果不包括完整的数据库使用情况,新手很难理解,而且会导致添加过多的索引,对写入性能产生负面影响,而通过DMV收集数据几乎不需要准备,而且几乎涵盖了自上次重新启动以来数据库的全部使用情况。
我的问题集中在向管理层提出的战略。我想把重点放在评估DMV的看法,在第一步,完全忽略DTA。
发布于 2011-08-07 13:32:54
我认为,构建一个监控DMV并跟踪其数据的工具(也许每天晚上对索引的使用情况和缺失的索引DMVs进行快照--包括过程统计也可能是有意义的),而不是在你想这么做的时候运行一些工具。在更长的一段时间里,你会得到一个更好的画面,不仅是他们现在的样子,也是他们随着时间的变化。
注意,不要删除那些看似未使用但可能与某个在商业周期中只被调用一次或两次的报告有关的索引--它可能比它的频率所显示的更重要。
发布于 2011-08-07 13:32:44
DTA有助于添加索引,但不帮助删除索引。如果您所面对的数据库每个表的索引已经超过5个,那么DTA就不是答案。您需要使用DMV来评估现有索引的使用情况。
下面是一段时间前我做过的视频教程脚本:
http://www.toadworld.com/platforms/sql-server/w/wiki/10062.find-indexes-not-in-use.aspx
发布于 2011-08-07 15:09:14
根据这 ("It“是一个基于DMV的索引查询)
没有这方面的经验,也不知道有任何替代的参考,对不起。
我倾向于坚持使用DMV,因为DTA你需要db_owner。在prod (作为开发人员DBA,而不是生产DBA)上,我没有权限运行这个.
https://dba.stackexchange.com/questions/4430
复制相似问题