分享

监控oracle的索引是否使用

 阿土书屋 2012-08-15
刚才发现某个OLTP系统中某张表建立了16个索引,由于不确定索引是否有在各程序中被使用,不能随意删除。因此,需要监控已有的索引是否在使用,Oracle 9i以上版本提供了简单的方法可以做到这点:
ALTER INDEX PK_TB_PERSON_INFO MONITORING USAGE;
用以上命令开启索引监控之后就可以从v$object_usage中查询到数据(即使索引还没有被使用),START_MONITORING字段会写入开始监控的时间;当某条SQL使用了相关的索引之后,其“USED”字段就会更新成“YES”。监控结束之后最好关闭监控,以提高效率:
ALTER INDEX PK_TB_PERSON_INFO NOMONITORING USAGE;
那些持续关注一定时间没有使用的索引就可以记录下来,与项目组讨论,确认可以删除则DROP掉,以提高DML操作效率。
需要注意的是:V$OBJECT_USAGE要去每个USER中查询,即使用SYS权限开启的其他USER索引的监控,也无法从SYS用户的V$OBJECT_USAGE中查到相关的记录。



    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多