返回缺失索引组的摘要信息,不包括空间索引
这个视图说白了就是预估有这麽一个索引,他的性能能提高多少
有一个字段比较重要:
avg_user_impact: 实现此缺失索引组后,用户查询可能获得的平均百分比收益。该值表示如果实现此缺失索引组,则查询成本将按此百分比平均下降。
就是说,增加了这个缺失索引,性能可以提高的百分比
下面是MSDN给出的示例,缺失索引组句柄为 2
--查询提供缺失索引的数据库、架构和表的名称。它还提供应该用于索引键的列的名称
USE [AdventureWorks]
GO
SELECT migs.group_handle, mid.*
FROM sys.dm_db_missing_index_group_stats AS migs
INNER JOIN sys.dm_db_missing_index_groups AS mig
ON (migs.group_handle = mig.index_group_handle)
INNER JOIN sys.dm_db_missing_index_details AS mid
ON (mig.index_handle = mid.index_handle)
WHERE migs.group_handle = 2
示例代码:
USE [AdventureWorks] --要查询索引缺失的数据库
GO
SELECT * FROM sys.[dm_db_missing_index_details]
SELECT * FROM sys.[dm_db_missing_index_groups]
SELECT * FROM sys.[dm_db_missing_index_group_stats]
SELECT * FROM sys.[dm_db_missing_index_columns](1) --1 :1是根据dm_db_missing_index_details查出来的
我估计XX大侠做的SQLSERVER索引优化器也使用了"sys.dm_db_missing_index_details" 这个DMV
刚才看了一下,好像有错别字:Total Cost不是Totol Cost
暂时不知道Total Cost跟Improvement Measure怎麽算出来的
注意:
最后大家还需要注意一下,虽然这些DMV给出的建议还是比较合理的。
但是,DBA还是需要去确认一下建议。因为这个建议完全是根据语句本身给出的,
没有考虑对其他语句的影响,也没有考虑维护索引的成本,所以是很片面的。
其准确性,也要再确认一下
上面几个DMV的字段解释,大家可以看一下MSDN,非常详细
sys.dm_db_missing_index_group_stats
msdn:http://msdn.microsoft.com/zh-cn/library/ms345421.aspx
sys.dm_db_missing_index_groups
msdn:http://msdn.microsoft.com/zh-cn/library/ms345407.aspx
sys.dm_db_missing_index_columns([sql_handle])
msdn:http://msdn.microsoft.com/zh-cn/library/ms345364.aspx
sys.dm_db_missing_index_details
msdn:http://msdn.microsoft.com/zh-cn/library/ms345434.aspx
- 欢迎访问木庄网络博客
- 可复制:代码框内的文字。
- 方法:Ctrl+C。