代码语言
.
CSharp
.
JS
Java
Asp.Net
C
MSSQL
PHP
Css
PLSQL
Python
Shell
EBS
ASP
Perl
ObjC
VB.Net
VBS
MYSQL
GO
Delphi
AS
DB2
Domino
Rails
ActionScript
Scala
代码分类
文件
系统
字符串
数据库
网络相关
图形/GUI
多媒体
算法
游戏
Jquery
Extjs
Android
HTML5
菜单
网页交互
WinForm
控件
企业应用
安全与加密
脚本/批处理
开放平台
其它
【
MSSQL
】
查找无用索引
作者:
/ 发布于
2016/6/21
/
906
步骤: 执行以下语句: 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 GO 分析: 为了获得索引名、索引类型、表名,有必要关联sys.Indexes和sys.objects表。 通常情况下,当一个索引被使用了,那么在sys.dm_db_index_usage_stats上的user_seek、user_scan、或者user_lookup列上会有一些值。如果索引从来未被使用,那么这些值就为0,也就是没必要保留。 扩充信息: 在决定索引是否有效时,还需要结合你的专业只是。有些索引之所以没有统计数据是因为还没有到使用的周期,或者周期性地重启了服务器,在删除之前,要考虑: 1、 是否为主键或者唯一键,因为及时这部分没有数值,但是它们还是可以很好地保证数据的一致性。 2、 唯一索引帮助优化器创建更有效的执行计划,及时这些索引未被使用,但是也提供了数据分布的相关信息。
试试其它关键字
同语言下
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
可能有用的
.
SQL查询 多列合并成一行用逗号隔开
.
查看存储过程修改时间,最近执行时间
.
设置手动批量删除数据库相关进程
.
获取某个表中特定字段的所有字符串形式
.
SQL 如何去除重复的字符串
.
怎么去掉一个字段中的重复数据
.
String 去除空格 回车 换行 水平制表符
.
SQL查询和替换含有回车,空格,TAB
.
SQL SERVER 查询每日新增用户数量、次留数量
.
判断两个字符串是否存在相同的内容
贡献的其它代码
Label
Copyright © 2004 - 2024 dezai.cn. All Rights Reserved
站长博客
粤ICP备13059550号-3