时间:2021-07-01 10:21:17 帮助过:49人阅读
1 --查询提供缺失索引的数据库、架构和表的名称。它还提供应该用于索引键的列的名称 2 USE [AdventureWorks] 3 GO 4 SELECT migs.group_handle, mid.* 5 FROM sys.dm_db_missing_index_group_stats AS migs 6 INNER JOIN sys.dm_db_missing_index_groups AS mig 7 ON (migs.group_handle = mig.index_group_handle) 8 INNER JOIN sys.dm_db_missing_index_details AS mid 9 ON (mig.index_handle = mid.index_handle) 10 WHERE migs.group_handle = 2
示例代码:
1 USE [AdventureWorks] --要查询索引缺失的数据库 2 GO 3 SELECT * FROM sys.[dm_db_missing_index_details] 4 SELECT * FROM sys.[dm_db_missing_index_groups] 5 SELECT * FROM sys.[dm_db_missing_index_group_stats] 6 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的字段解释,大家可以看一下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
注意:
最后大家还需要注意一下,虽然这些DMV给出的建议还是比较合理的。
但是,DBA还是需要去确认一下建议。因为这个建议完全是根据语句本身给出的,
没有考虑对其他语句的影响,也没有考虑维护索引的成本,所以是很片面的。
其准确性,也要再确认一下
SQLSERVER如何查看索引缺失-转
标签:持久 怎么 服务 create handle 数据库管理员 rod 估计 archive