Sql server 2008 r2 SQL Server 2008 R2上缺少索引统计信息

Sql server 2008 r2 SQL Server 2008 R2上缺少索引统计信息,sql-server-2008-r2,Sql Server 2008 R2,我已经安装了SQLServer2008R2(其中一个),它的系统相当繁忙。我正试图像过去一样,通过使用来自的信息来优化一些索引 奇怪的是,sys.dm\u db\u missing\u index\u group\u stats表是空的 现在我一点也不相信该服务器上的数据库中没有一个漏掉节拍,其他表,如sys.dm\u db\u missing\u index\u group\u stats,sys.dm\u db\u missing\u index\u group\u stats等,包含大量记

我已经安装了SQLServer2008R2(其中一个),它的系统相当繁忙。我正试图像过去一样,通过使用来自的信息来优化一些索引

奇怪的是,
sys.dm\u db\u missing\u index\u group\u stats
表是空的

现在我一点也不相信该服务器上的数据库中没有一个漏掉节拍,其他表,如
sys.dm\u db\u missing\u index\u group\u stats
sys.dm\u db\u missing\u index\u group\u stats
等,包含大量记录

刚才我看到1(一)条记录短暂地出现在那张表中,从那以后就消失了


我想知道该服务器是否出了严重问题,或者我是否遗漏了一个看似是SQL 2008 R2中的一个小错误。 在谷歌上搜索“sys.dm_db_missing_index_group_stats empty”(关于Mike West)

我会尽力解释发生了什么

SQL Server的缺失索引功能中使用了4个DMO(动态管理对象)。
缺少的索引详细信息保留在这些DMO中,直到清除为止。 当您实际创建缺少的索引(或重新启动服务器)时,将触发清除

但是,这些DMO中可以容纳的行数限制为600行

这与sys.dm_db_missing_index_group_stats DMO只为执行的查询收集数据这一事实相结合,而另外三个为编译的查询和执行的查询收集数据引入了这个“bug”

解决方法建议查询sys.dm_db_missing_index_details dmv,并使用“STATISTICS_ONLY=-1”创建所有建议的索引,然后删除。 这将重新启动索引建议收集


更多解释和解决方法。

DBCC TRACESTATUS(-1)的作用是什么显示?实例是否有可能是使用“-x”标志启动的?根据(底部)的说法,如果这是问题所在,那么这是关闭它的唯一方法。@AaronBertrand DBCC TRACESTATUS(-1);显示bupkis@srutzky我仔细检查了一下,以确保我没有发疯。No-x标志。另外,如果有标志,则不会收集任何数据,但正如我所提到的,所有其他表似乎都在收集统计数据,只有这一个表是空的。从:到外部资源的链接是鼓励的,但请在链接周围添加上下文,以便您的其他用户了解它是什么以及为什么存在。始终引用重要链接中最相关的部分,以防无法访问目标站点或永久脱机。