查看当前数据库中没用的索引(sys.dm_db_index_usage_stats)
来源:互联网 发布:windows解压mac zip 编辑:程序博客网 时间:2024/05/14 01:43
数据库经过一段时间的使用后,可能会沉积着一些建立后从没使用过的索引,继续维护这些索引就是浪费资源了,很有必要定期找出来分析处理。
SQL2005 有一个非常有用的管理视图:sys.dm_db_index_usage_stats,可以用它找出数据库中不被使用的索引。
---------------------------------------------------------------------------------------
为方便工作,写了一个通用存储过程:
create proc pChkidx
as
select tb_name=object_name(a.object_id)
,idx_name=b.name
,last_user_update
,c.colid,c.keyno
,col_name=d.name
into #tmp
from sys.dm_db_index_usage_stats a left join sys.indexes b on a.object_id=b.object_id and a.index_id=b.index_id
left join sys.sysindexkeys c on c.id=a.object_id and c.indid=a.index_id
left join syscolumns d on d.id=c.id and d.colid=c.colid
where database_id=db_id()
and last_user_seek is null
and last_user_scan is null
and last_user_lookup is null
and last_user_update is not null
order by tb_name,idx_name,keyno
select tb_name,idx_name,last_user_update
,keywords= stuff(
(select '+'+ col_name
FROM #tmp
where tb_name=a.tb_name and idx_name=a.idx_name
order by tb_name,idx_name,keyno
for xml path('') )
,1,1,'')
from #tmp a
group by tb_name,idx_name,last_user_update
SQL2005 有一个非常有用的管理视图:sys.dm_db_index_usage_stats,可以用它找出数据库中不被使用的索引。
---------------------------------------------------------------------------------------
为方便工作,写了一个通用存储过程:
create proc pChkidx
as
select tb_name=object_name(a.object_id)
,idx_name=b.name
,last_user_update
,c.colid,c.keyno
,col_name=d.name
into #tmp
from sys.dm_db_index_usage_stats a left join sys.indexes b on a.object_id=b.object_id and a.index_id=b.index_id
left join sys.sysindexkeys c on c.id=a.object_id and c.indid=a.index_id
left join syscolumns d on d.id=c.id and d.colid=c.colid
where database_id=db_id()
and last_user_seek is null
and last_user_scan is null
and last_user_lookup is null
and last_user_update is not null
order by tb_name,idx_name,keyno
select tb_name,idx_name,last_user_update
,keywords= stuff(
(select '+'+ col_name
FROM #tmp
where tb_name=a.tb_name and idx_name=a.idx_name
order by tb_name,idx_name,keyno
for xml path('') )
,1,1,'')
from #tmp a
group by tb_name,idx_name,last_user_update
- 查看当前数据库中没用的索引(sys.dm_db_index_usage_stats)
- 查看当前数据库中没用的索引(sys.dm_db_index_usage_stats)
- 查看当前数据库中触发器的个数
- 查看数据库中有无多余的索引
- 查看数据库中没有使用的索引
- oracle中查看当前用户的表结构、主键、索引
- 查看当前数据库的触发器
- 教你删除Oracle数据库中重复没用的数据
- 删除Oracle数据库中重复的没用数据
- oracle中查看当前数据库名
- 查看oracle数据库中空间索引
- 索引没用上-date的通病
- 如何在驱动程序(SYS)中得到当前进程的完整路径和进程名
- 如何在驱动程序(sys)中得到当前进程的完整路径和进程名?
- 查看当前使用的数据库的版本
- sys用户查看数据库表空间使用情况(ORACLE)
- 查看当前连接数据库的连接
- 查看当前数据库的连接数
- 认识主配置文件
- Eclipse插件CheckStyle常用输出说明
- putty && xming 远程登录 centos
- Access导入文本文件的Schema.ini文件格式
- 程序修改注意事项
- 查看当前数据库中没用的索引(sys.dm_db_index_usage_stats)
- <寒江独钓>Windows内核安全编程__一个简单的Windows串口过滤驱动程序的开发
- 字符串之间的转换
- JAVA获取随机数
- Android将Widget添加到自己的应用程序
- suse下声明tomcat+jdk的全局设置
- 10月10日基础班开班了——广州传智播客
- 宇宙加速膨胀理论被证实所能联想到的
- Android开发指南-窗口小部件(App Widgets)