首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用DTA和评估DMV?

用DTA和评估DMV?
EN

Database Administration用户
提问于 2011-08-07 10:24:20
回答 3查看 554关注 0票数 5

目前,我面临的是一个生产SQL Server数据库,其中有人添加了DTA中几乎所有缺失的索引建议。

表单如何确定索引是必需的还是必需的我了解到,有DMV视图,可以用来延迟有关实际索引使用和缺少索引的信息。

来自贾森·斯特拉特的脚本只使用该视图中的当前信息,而一天的乐趣-自动索引自动!则将这些视图中的一些信息保存到表中。

另一边的DTA需要规划何时运行分析器,选择要配置什么,并在运行时对性能有一定的影响。

我的印象是,使用DTA作为第一步调优工具只是浪费时间,而且其结果不包括完整的数据库使用情况,新手很难理解,而且会导致添加过多的索引,对写入性能产生负面影响,而通过DMV收集数据几乎不需要准备,而且几乎涵盖了自上次重新启动以来数据库的全部使用情况。

我的问题集中在向管理层提出的战略。我想把重点放在评估DMV的看法,在第一步,完全忽略DTA。

EN

回答 3

Database Administration用户

回答已采纳

发布于 2011-08-07 13:32:54

我认为,构建一个监控DMV并跟踪其数据的工具(也许每天晚上对索引的使用情况和缺失的索引DMVs进行快照--包括过程统计也可能是有意义的),而不是在你想这么做的时候运行一些工具。在更长的一段时间里,你会得到一个更好的画面,不仅是他们现在的样子,也是他们随着时间的变化。

注意,不要删除那些看似未使用但可能与某个在商业周期中只被调用一次或两次的报告有关的索引--它可能比它的频率所显示的更重要。

票数 4
EN

Database Administration用户

发布于 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

票数 4
EN

Database Administration用户

发布于 2011-08-07 15:09:14

根据 ("It“是一个基于DMV的索引查询)

  • 它不如数据库引擎调优顾问那么聪明。如果您已经确定了一个查询是昂贵的,需要一些帮助,不要仅仅因为缺少的索引DMVs没有任何建议就放弃DTA。DTA也许还能帮上忙。
  • 缺少的索引DMVs没有考虑到新索引可能造成的开销(额外的磁盘空间、对insert/delete perf的轻微影响,等等)。不过,DTA确实考虑到了这一点。
  • 该查询输出中的"improvement_measure“列是一个粗略的指示符,表示如果创建索引,可能会看到(估计的)改进。这是一个没有单位的数字,对于其他索引来说,它的意思只是相对相同的数字。(它是avg_total_user_cost、avg_user_impact、user_seeks和sys.dm_db_missing_index_group_stats中user_scans列的组合。)
  • 缺少的索引DMVs不推荐建议的索引是聚集还是非聚集。这具有工作负载范围的分支,而这些DMV只关注对单个查询有利的索引。(不过,DTA可以做到这一点。)
  • 不建议分区。
  • 对于多列索引,DMV可能不推荐理想的列顺序。
  • DMV跟踪不超过500个缺失索引的信息。

没有这方面的经验,也不知道有任何替代的参考,对不起。

我倾向于坚持使用DMV,因为DTA你需要db_owner。在prod (作为开发人员DBA,而不是生产DBA)上,我没有权限运行这个.

票数 2
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/4430

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档