我正在使用SQL Server 2005和动态管理视图sys.dm_db_missing_index_details
。它继续告诉我Table1确实需要ColumnX和ColumnY的索引,但该索引已经存在!我甚至已经放弃并重新创建它几次无济于事。
更多细节:该视图列出了equality_columns
下的Column1。 Column2列在inequality_columns
下,因此我创建的索引是:
create index IndexA on Table1 (Column1 asc, Column2 asc)
这不正是指数sys.dm_db_missing_index_details
告诉我需要吗?
答案 0 :(得分:5)
随机思考:如果其中一列被更好地声明为“DESC”怎么办?
这对ORDER BY子句很有用,我看到逻辑IO减少了一半。
答案 1 :(得分:0)
虽然这是一篇相当古老的文章,但我在此发现了一篇有用的文章http://www.simple-talk.com/sql/database-administration/fine-tuning-your-database-design-in-sql-2005/,其中引用了一篇关于DMV限制的微软文章http://msdn.microsoft.com/en-us/library/ms345485.aspx
答案 2 :(得分:-1)
如果你已经掉线&创建了索引,sp_update_stats不应该影响它(问题不在于统计信息)
也许是因为DMV数据已经过时了 实际执行计划是否也建议SSMS中的缺失指数?
返回的信息 sys.dm_db_missing_index_details是 在优化查询时更新 查询优化器,而不是 持续存在。缺少索引信息 只保留到SQL Server 重新启动。数据管理员 应定期制作备份副本 丢失的索引信息if 他们希望在服务器之后保留它 回收
确定哪个缺失索引 组特定的缺失索引是 部分,你可以查询 sys.dm_db_missing_index_groups动态 管理视图通过等同于它 sys.dm_db_missing_index_details基于 在index_handle列上。