曾经使用过网上下载的脚本查询没有使用过的Index比方SQL
SERVER – 2008 – Unused Index Script – Download
,事实上如今看起来这个脚本是有一些问题。

脚本例如以下:

-- UnusedIndex Script

-- Original Author:Pinal Dave (C) 2011

SELECT TOP 25

o.name
AS ObjectName

, i.nameAS IndexName

, i.index_idAS IndexID

, dm_ius.user_seeksAS UserSeek

, dm_ius.user_scansAS UserScans

, dm_ius.user_lookupsAS UserLookups

, dm_ius.user_updatesAS UserUpdates

, p.TableRows

, 'DROP INDEX '+
QUOTENAME(i.name)

+ ' ON '+
QUOTENAME(s.name)+
'.' +
QUOTENAME(OBJECT_NAME(dm_ius.OBJECT_ID))AS
'drop statement'

FROM sys.dm_db_index_usage_statsdm_ius

INNER JOINsys.indexes iON i.index_id
= dm_ius.index_id
AND dm_ius.OBJECT_ID= i.OBJECT_ID

INNER JOINsys.objects oON dm_ius.OBJECT_ID=
o.OBJECT_ID

INNER JOINsys.schemas sON o.schema_id=
s.schema_id

INNER JOIN(SELECTSUM(p.rows)
TableRows, p.index_id, p.OBJECT_ID

FROM sys.partitions pGROUP
BY p.index_id, p.OBJECT_ID) p

ON p.index_id= dm_ius.index_idAND dm_ius.OBJECT_ID=
p.OBJECT_ID

WHERE
OBJECTPROPERTY(dm_ius.OBJECT_ID,'IsUserTable')=
1

AND dm_ius.database_id=
DB_ID()

AND i.type_desc=
'nonclustered'

AND i.is_primary_key= 0

AND i.is_unique_constraint= 0

ORDER BY(dm_ius.user_seeks+ dm_ius.user_scans+
dm_ius.user_lookups)ASC

GO

本脚本通过查询sys.dm_db_index_usage_stats获得索引的使用情况。可是假设索引没有被使用是不会出如今sys.dm_db_index_usage_stats中的。

仅仅有索引被第一次被使用才会在sys.dm_db_index_usage_stats中插入一条记录,之后索引被訪问的信息会累积更新到这张表里。假设使用INNSER
JOIN连接就忽略掉了这部分的数据。

当然索引被创建一次都没有使用的情况会很少。

网上Unused Index Script 脚本的问题的更多相关文章

  1. 在html中添加script脚本的方法和注意事项

    在html中添加script脚本有两种方法,直接将javascript代码添加到html中与添加外部js文件,这两种方法都比较常用,大家可以根据自己需要自由选择 在html中添加<script& ...

  2. C#用正则表达式去掉Html中的script脚本和html标签

    原文 C#用正则表达式去掉Html中的script脚本和html标签 /// <summary>         /// 用正则表达式去掉Html中的script脚本和html标签     ...

  3. 使用PrintWriter out=response.getWriter();输出script脚本时乱码解决

    使用PrintWriter out=response.getWriter();输出script脚本时乱码解决 最近遇到了一个奇怪的事情,仅仅用out.print("<script ty ...

  4. 使用lucene query的CharFilter 去掉字符中的script脚本和html标签

    1.准备数据,这里我从数据库读取一个带有html标签和script脚本的数据

  5. 015-elasticsearch5.4.3【五】-搜索API【四】Joining 多文档查询、GEO查询、moreLikeThisQuery、script脚本查询、span跨度查询

    一.Joining 多文档查询 joining query 像Elasticsearch这样的分布式系统中执行完整的SQL样式连接非常昂贵.相反,Elasticsearch提供两种形式的连接,旨在水平 ...

  6. node Cheerio 获取script脚本里的数据

    const cheerio = require('cheerio'); const $ = cheerio.load(html); // your html//如果有多少script脚本标签使用循环来 ...

  7. 使用jQuery加载script脚本

    原文链接: Loading Scripts with jQuery JavaScript loaders加载器简单强大而又非常有用.我在博客上介绍过其中一些,例如 curljs  和 LABjs ,也 ...

  8. Redis 的Lua Script脚本功能

    从 Redis 2.6.0 版本开始,通过内置的 Lua 解释器,可以使用 EVAL 命令对 Lua 脚本进行求值 Redis2.6内置的Lua Script支持,可以在Redis的Server端一次 ...

  9. (五)CodeMirror - 关于htmlmixed中包含script脚本

    最近发现个问题,场景如下: 当创建的mode类型为htmlmixed,且内容中包含javascript脚本,且是闭包立即执行: 如果内容是使用JQuery函数.html()插入到DOM中后再创建cod ...

随机推荐

  1. Eureka 整理

    服务治理:(该模块也可以使用集群) 该模块主要负责完成微服务架构中的服务治理功能. 1.构建服务注册中心. 每个服务单元需要向注册中心登记自己提供的服务. 2.服务注册与服务发现. 服务之间的调用不再 ...

  2. git 控制操作

    克隆文件 git clone https://gitee.com/xxxxx/xxxxx.git 克隆分支文件 git clone -b 分支名 https://gitee.com/xxxxx/xxx ...

  3. Python 保留n位小数

    输出a, b 且保留三位小数 a = 2.3456 b = 2.0000 三种方法: round(a, 3)('%.3f' % a)Decimal(a).quantize(Decimal('0.000 ...

  4. 关于阻止Sublime Text更新弹窗提示

    使用Sublime Text有一段时间了,但每次重新打开都会弹出这家伙↑,很烦 网上查了查一些关闭弹窗的教程,大同小异,都说是打开Preferences --> Settings, 添加一行代码 ...

  5. 51nod 1021 石子归并 - 区间dp(经典)

    题目地址:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1021 经典区间dp,dp[i][j] 表示将从 i 到 j 堆 ...

  6. elementui 后台管理系统遇到的问题(二) 树形控件 el-tree

    elementui中树形控件的使用 一.将后台返回的数据填充到前端控件中,需要注意的几点问题 (1).el-tree中需要绑定node-key='自定义的id名称' (2).在配置data中defau ...

  7. JavaScript:获取上传图片的base64

    文章来源:http://www.cnblogs.com/hello-tl/p/7661535.html 1.HTML代码 <!DOCTYPE html> <html lang=&qu ...

  8. jmeter 性能插件

    mv jmeter-plugins-manager-0.16.jar /usr/local/Cellar/jmeter/3.1/libexec/lib/ext http://www.cnblogs.c ...

  9. LeetCode(62)Unique Paths

    题目 A robot is located at the top-left corner of a m x n grid (marked 'Start' in the diagram below). ...

  10. Java线程和多线程(一)——线程的基本概念

    Java 线程是一个轻量级执行任务的处理单元.Java提供了Thread类来支持多线程,开发者在应用中可以创建多个线程来支持并发执行任务. 在应用中存在两种类型的线程,用户线程和守护线程.当我们启动应 ...