视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
数据库优化-删除不再使用的索引
2020-11-09 14:38:25 责编:小采
文档


ENV:11.2.0.3 一个运行了四年的库,近期发现一些头疼的问题,空间不足,性能降低 发现有些索引因为应用变更,基本不用了,决定检测,删除那些不同的索引; 以前也有写过博文:http://blog.csdn.net/jacson_bai/article/details/37773319 这里涉及到公司一些

ENV:11.2.0.3

一个运行了四年的库,近期发现一些头疼的问题,空间不足,性能降低

发现有些索引因为应用变更,基本不用了,决定检测,删除那些不同的索引;
以前也有写过博文:http://blog.csdn.net/jacson_bai/article/details/37773319
这里涉及到公司一些安全,就不贴出来了,主要说一下解决思路

数据库每一个schema下所有操作都相同:
1.开启索引监控
select 'alter index '||index_name||' monitoring usage;' from user_indexes;
将查询结果写在一个1.sql文本,调用sqlplus执行。
2.监控程序运行,这个是需要时间的,尤其是有PL/SQL写的那些对象,必须都运行了,才可以下结论
有时候可能需要一个月,因为有些job就是每月运行一下
3.关闭索引监控
select 'alter index '||index_name||' nomonitoring usage;' from user_indexes;
将查询结果写在一个2.sql文本,调用sqlplus执行
4.查看监控结果
select * from v$object_usage;

关键看,USE是YES还是NO

5.将结果导出来,与开发讨论后,的确没有再使用的,就drop

备注:有些schema可能没有权限执行alter哦,要么赋权限再拿掉,要么有补全schema,在sysdba下执行

下载本文
显示全文
专题