zoukankan      html  css  js  c++  java
  • 关于SQLserver的索引的一些脚本

    --判断无用的索引:
    SELECT TOP 30  
            DB_NAME() AS DatabaseName ,  
            '[' + SCHEMA_NAME(o.Schema_ID) + ']' + '.' + '['  
           + OBJECT_NAME(s.[object_id]) + ']' AS TableName ,  
            i.name AS IndexName ,  
            i.type AS IndexType ,  
           s.user_updates ,  
           s.system_seeks + s.system_scans + s.system_lookups AS [System_usage]  
    FROM    sys.dm_db_index_usage_stats s  
            INNER JOIN sys.indexes i ON s.[object_id] = i.[object_id]  
                                        AND s.index_id = i.index_id  
            INNER JOIN sys.objects o ON i.object_id = O.object_id  
    WHERE   s.database_id = DB_ID()  
            AND OBJECTPROPERTY(s.[object_id], 'IsMsShipped') = 0  
            AND s.user_seeks = 0         
    AND s.user_scans = 0  
            AND s.user_lookups = 0  
            AND i.name IS NOT NULL  
    ORDER BY s.user_updates DESC ;
    
    
    ---判断哪些索引缺失: 
    
    
    SELECT TOP 30  
           ROUND(s.avg_total_user_cost * s.avg_user_impact * ( s.user_seeks  
                                                               + s.user_scans ),  
                 0) AS [Total Cost] ,  
            s.avg_total_user_cost * ( s.avg_user_impact / 100.0 ) * ( s.user_seeks  
                                                                  + s.user_scans ) AS Improvement_Measure ,  
            DB_NAME() AS DatabaseName ,          d.[statement] AS [Table Name] ,  
            equality_columns ,  
            inequality_columns ,  
            included_columns  
    FROM    sys.dm_db_missing_index_groups g  
           INNER JOIN sys.dm_db_missing_index_group_stats s ON s.group_handle = g.index_group_handle  
            INNER JOIN sys.dm_db_missing_index_details d ON d.index_handle = g.index_handle  
    WHERE   s.avg_total_user_cost * ( s.avg_user_impact / 100.0 ) * ( s.user_seeks  
                                                                  + s.user_scans ) > 10  
    ORDER BY [Total Cost] DESC ,  
            s.avg_total_user_cost * s.avg_user_impact * ( s.user_seeks  
                                                          + s.user_scans ) DESC  
    
    
    ---看看那些索引维护成本很高 通俗的说就是更新次数大于使用这个索引的次数
    SELECT TOP 20  
            DB_NAME() AS DatabaseName ,  
            '[' + SCHEMA_NAME(o.Schema_ID) + ']' + '.' + '['  
            + OBJECT_NAME(s.[object_id]) + ']' AS TableName ,  
            i.name AS IndexName ,  
            i.type AS IndexType ,  
            ( s.user_updates ) AS update_usage ,  
            ( s.user_seeks + s.user_scans + s.user_lookups ) AS retrieval_usage ,  
            ( s.user_updates ) - ( s.user_seeks + user_scans + s.user_lookups ) AS maintenance_cost ,  
            s.system_seeks + s.system_scans + s.system_lookups AS system_usage ,  
            s.last_user_seek ,  
            s.last_user_scan ,  
            s.last_user_lookup  
    FROM    sys.dm_db_index_usage_stats s  
            INNER JOIN sys.indexes i ON s.[object_id] = i.[object_id]  
                                        AND s.index_id = i.index_id  
            INNER JOIN sys.objects o ON i.object_id = O.object_id  
    WHERE   s.database_id = DB_ID('{0}')  
            AND i.name IS NOT NULL  
            AND OBJECTPROPERTY(s.[object_id], 'IsMsShipped') = 0         
       AND ( s.user_seeks + s.user_scans + s.user_lookups ) > 0  
    ORDER BY maintenance_cost DESC;
    
    
    
    
    ----常常使用的索引查看 看看你常用使用的索引是否建立的合理
    SELECT TOP 20  
    DB_NAME() AS DatabaseName  
    , '['+SCHEMA_NAME(o.Schema_ID)+']'+'.'+'['+OBJECT_NAME(s.[object_id]) +']'AS TableName  
    , i.name AS IndexName  
    , i.type as IndexType  
    , (s.user_seeks + s.user_scans + s.user_lookups) AS Usage  
    , s.user_updates  
    FROM sys.dm_db_index_usage_stats s  
    INNER JOIN sys.indexes i ON s.[object_id] = i.[object_id]  
    AND s.index_id = i.index_id  
    INNER JOIN sys.objects o ON i.object_id = O.object_id  
    WHERE s.database_id = DB_ID()  
    AND i.name IS NOT NULL  
    AND OBJECTPROPERTY(s.[object_id], 'IsMsShipped') = 0  
    ORDER BY Usage DESC   
    

      

  • 相关阅读:
    Python 安装Twisted 提示python version 2.7 required,which was not found in the registry
    Openfire Strophe开发中文乱码问题
    css div 垂直居中
    How to create custom methods for use in spring security expression language annotations
    How to check “hasRole” in Java Code with Spring Security?
    Android 显示/隐藏 应用图标
    Android 当媒体变更后,通知其他应用重新扫描
    文件上传那些事儿
    专题:点滴Javascript
    主流动画实现方式总结
  • 原文地址:https://www.cnblogs.com/accumulater/p/7081533.html
Copyright © 2011-2022 走看看