SQL Server ->> 查找没用的索引

发布时间:2022-07-04 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了SQL Server ->> 查找没用的索引脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

查找数据库中没用的索引

 

SELECT 
(SELECT SQLserver_start_time From Sys.dm_os_sys_info) AS sqlserver_start_time,
DB_NamE(diu.database_id) AS DatabaseName,
       s.name + '.' + QUOTENAME(o.name) AS TableName,
       i.index_id AS IndexID,
       i.name AS IndexName,
       CASE
           WHEN i.is_unique = 1 THEN
               'UNIQUE INDEX'
           ELSE
               'NOT UNIQUE INDEX'
       END AS IS_UNIQUE,
       CASE
           WHEN i.is_disabled = 1 THEN
               'DISABLE'
           ELSE
               'ENABLE'
       END AS Indexstatus,
       o.create_date AS IndexCreated,
       STATS_DATE(o.object_id, i.index_id) AS StatisticsUpdateDate,
       diu.user_seeks AS UserSeek,
       diu.user_scans AS UserScans,
       diu.user_lookups AS UserLookups,
       diu.user_updates AS UserUpdates,
       p.TableRows,
       'DROP INDEX ' + QUOTENAME(i.name) + ' ON ' + QUOTENAME(s.name) + '.' + QUOTENAME(OBJECT_NAME(diu.object_id))
       + ';' AS 'Drop Index Statement'
From sys.dm_db_index_usage_stats diu
    INNER JOIN sys.indexes i
        ON i.index_id = diu.index_id
           AND diu.object_id = i.object_id
    INNER JOIN sys.objects o
        ON diu.object_id = o.object_id
    INNER JOIN sys.schemas s
        ON o.schema_id = s.schema_id
    INNER JOIN
    (
        SELECT SUM(p.rows) TableRows,
               p.index_id,
               p.object_id
        FROM sys.partITions p
        GROUP BY p.index_id,
                 p.object_id
    ) p
        ON p.index_id = diu.index_id
           AND diu.object_id = p.object_id
WHERE OBJECTPROPERTY(diu.object_id, 'ISUSErTable') = 1
      AND diu.database_id = DB_ID()
      AND i.is_Primary_key = 0 --排除主键索引
      AND i.is_unique_constraint = 0 --排除唯一索引
      AND diu.user_updates <> 0 --排除没有数据变化的索引
      AND diu.user_lookups = 0
      AND diu.user_seeks = 0
      AND diu.user_scans = 0
      AND i.name IS NOT NULL --排除那些没有任何索引的堆表
ORDER BY (diu.user_seeks + diu.user_scans + diu.user_lookups) ASC,
         diu.user_updates DESC;

 

脚本宝典总结

以上是脚本宝典为你收集整理的SQL Server ->> 查找没用的索引全部内容,希望文章能够帮你解决SQL Server ->> 查找没用的索引所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。