zoukankan      html  css  js  c++  java
  • 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;
  • 相关阅读:
    cyq.data 常见使用方法
    JS生成随机数进行循环匹配数组
    CSS3常用的循环动画
    JSSDK调用微信原生的功能上传图片保存到自己的服务器中
    C#图片压缩
    nodejs使用vue从搭建项目到发布部署
    JS在一个数组中查找某个用户输入的值,返回对应值所在索引值
    转载文章记录篇
    随笔诗词-1
    mobilebone与weiui_example.css 使用问题
  • 原文地址:https://www.cnblogs.com/jenrrychen/p/15348473.html
Copyright © 2011-2022 走看看