当前位置:首页 > 开发 > 数据库 > 正文

在SQLSERVER中查找缺失和无用的索引SQL

发表于: 2015-04-27   作者:357029540   来源:转载   浏览:
摘要: --缺失的索引 SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement ,          last_user_seek ,    
--缺失的索引
SELECT  avg_total_user_cost * avg_user_impact * ( user_scans + user_seeks ) AS PossibleImprovement , 
        last_user_seek , 
        last_user_scan , 
        [statement] AS [Object] , 
        'CREATE INDEX [IDX_' + CONVERT(VARCHAR(32), GS.group_handle) + '_' 
        + CONVERT(VARCHAR(32), D.index_handle) + '_' 
        + REPLACE(REPLACE(REPLACE([STATEMENT], ']', ''), '[', ''), '.', '') 
        + ']' + ' ON ' + [statement] + ' (' + ISNULL(equality_columns, '') 
        + CASE WHEN equality_columns IS NOT NULL 
                    AND inequality_columns IS NOT NULL THEN ',' 
               ELSE '' 
          END + ISNULL(inequality_columns, '') + ')' + ISNULL(' INCLUDE (' 
                                                              + included_columns 
                                                              + ')', '') AS Create_Index_Syntax 
FROM    sys.dm_db_missing_index_groups AS G 
        INNER JOIN sys.dm_db_missing_index_group_stats AS GS ON G.index_group_handle = GS.group_handle 
        INNER JOIN sys.dm_db_missing_index_details AS D ON G.index_handle = D.index_handle 
ORDER BY statement,PossibleImprovement desc


--无用的索引
SELECT  ind.index_id , 
        obj.name AS TableName , 
        ind.name AS IndexName , 
        ind.type_desc , 
        indUsage.user_seeks , 
        indUsage.user_scans , 
        indUsage.user_lookups , 
        indUsage.user_updates , 
        indUsage.last_system_seek , 
        indUsage.last_user_scan , 
        'drop index [' + ind.name + '] ON [' + obj.name + ']' AS DropIndexCommand 
FROM    sys.indexes AS ind 
        INNER JOIN sys.objects AS obj ON ind.object_id = obj.object_id 
        LEFT JOIN sys.dm_db_index_usage_stats indUsage ON ind.object_id = indUsage.object_id 
                                                          AND ind.index_id = indUsage.index_id 
WHERE   ind.type_desc <> 'HEAP' 
        AND obj.type <> 'S' 
        AND OBJECTPROPERTY(obj.object_id, 'isusertable') = 1 
        AND ( ISNULL(indUsage.user_seeks, 0) = 0 
              AND ISNULL(indUsage.user_scans, 0) = 0 
              AND ISNULL(indUsage.user_lookups, 0) = 0 
            ) 
ORDER BY obj.name , 
        ind.name

在SQLSERVER中查找缺失和无用的索引SQL

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

编辑推荐
SQLSERVER中的鬼影索引 看这篇文章之前可以先看一下鬼影记录 了解了解一下SQLSERVER里的鬼影记录 关
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
SQLServer数据库随着使用时间的增长,会让人觉得越来越慢,这个和你平时没有合理的维护计划有关系,
一、书签查找的概念   书签可以帮助SQL Server快速从非聚集索引条目导向到对应的行,其实这东西几
原文: SQLSERVER中如何忽略索引提示 SQLSERVER中如何忽略索引提示 当我们想让某条查询语句利用某个索
在谈论数据库性能优化的时候,通常都会提到“索引”,但很多人其实并没有真正理解索引,也没有搞清
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号