前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Oracle监控用户索引使用情况,删除无用索引

Oracle监控用户索引使用情况,删除无用索引

作者头像
Alfred Zhao
发布2019-05-24 20:26:34
8550
发布2019-05-24 20:26:34
举报
  1. 监控当前业务用户索引
  2. 一段时间后查询从未被使用的索引,删除无用索引
  3. 停止监控索引

1. 监控当前用户所有索引

得到监控所有索引的语句:

代码语言:javascript
复制
select 'alter index ' || index_name || ' monitoring usage;' from user_indexes;

2. 一段时间后查询从未被使用的索引,删除无用索引

注意:视具体业务情况,选择一周后,一月后,两月后(总之要保证应用的所有SQL都至少跑一遍)

2.1 查看这段时间内,从未被使用的索引:

代码语言:javascript
复制
select * from v$object_usage where used='NO';

2.2 得到删除从未被使用的索引的语句:

代码语言:javascript
复制
select 'drop index '||o.index_name||';' from v$object_usage o join user_indexes u on o.index_name = u.index_name where o.used='NO' and u.uniqueness='NONUNIQUE';

特别注意:直接drop index操作,从未被使用的索引中,主键不会被删除(会给出错误ORA-02429),但唯一性索引会被删掉。 所以我这里join了user_indexes,从而判断只删除NONUNIQUE的索引。

3. 停止监控用户所有索引

得到停止监控所有索引的语句:

代码语言:javascript
复制
select 'alter index ' || index_name || ' nomonitoring usage;' from user_indexes;
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015-09-09 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 监控当前用户所有索引
  • 2. 一段时间后查询从未被使用的索引,删除无用索引
    • 2.1 查看这段时间内,从未被使用的索引:
      • 2.2 得到删除从未被使用的索引的语句:
      • 3. 停止监控用户所有索引
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档