当前位置:Gxlcms > 数据库问题 > SQLSERVER如何查看索引缺失-转

SQLSERVER如何查看索引缺失-转

时间: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   

人气教程排行