最近的研究发现 Oracle 数据库所使用的索引从来没有达到过可用索引数的1/4,

或者其用法与其开始设计的意图不相同。未用的索引浪费空间,而且还会降低 DML

的速度,尤其是 UPDATE 和 INSERT 语句;控数据库索引的使用,释放那些未被使用

的索引,从而节省维护索引的开销,优化sql性能

在 Oracle9i 之前,监控索引使用的唯一方法是执行他们的程序库缓中的所有SQL,

然后手工记下所有被使用的索引。

oracle9i中如何确定索引的使用情况

 在oracle9i中,情况会简单的多,因为有一个新的字典视图V$SQL_PLAN存储了实际计划,

这些计划用于执行共享SQL区中得语句。V$SQL_PLAN视图很类似与计划表,但V$SQL_PLAN
 
  使用ADDRESS和HASH_VALUE列 来识别语句, 而计划表使用用户提供得STATEMENT_ID来识
 
  别语句。下面的SQL显示了在一个oracle9i数据库中,由出现在共享SQL区中语句使用的所
 
  有索引

 select object_owner, object_name, options, count(*)
  from  v$sql_plan
   where operation='INDEX'
  and  object_owner!='SYS'
  group by object_owner, object_name, operation, options
  order by count(*) desc;

  
  所有基于共享SQL区中的信息来识别索引使用情况的方法, 都可能会收集到不完整的信息。共享SQL区是
   
    一个动态结构,除非能对它进行足够频繁的采样, 否则在有关索引使用的情况的信息被收集之前,SQL语
   
    句可能就已经(因为老化)被移出缓存了。

Oracle9i提供一个简单的方法来打开和关闭索引使用跟踪,那就是MONITORING USAGE 子句:

  alter index cust_name_idx monitoring usage;
  alter index cust_name_idx nomonitoring usage;

  这个命令使用V$OBJECT_USAGE 视图和 USAGE 字段来判断索引是否被访问过。你可能期望 USAGE 字段是一个数字值,

这样你就可以知道索引被使用的次数,但不幸的是,它的取值只为YES 或NO。但不管怎样,如果你接手一个以前开发
   
    的数据库,而且老数据库在没有考虑到 SQL 访问表的情况下创建了索引,那么这个工具对你是很有用的。INDEX MONITORING
   
    特性的开销非常小,而对定位和丢弃不需要的索引很有帮助

打开整个方案的索引监控的简单 SQL*Plus 脚本

set pages 999
  set heading off
  spool run_mon.sql
  select
    'alter index '||
    index_name||
    ' monitoring usage;'
  from
    dba_indexes
  where
    owner = 'HPO5';
  spool off

 sql> @run_mon

oracle索引监控周期的选择,一般要覆盖对数据库所有的操作,避免漏掉

------end-----

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/wyzxg/archive/2009/08/21/4471038.aspx

oracle索引的监控相关推荐

  1. oracle 索引_分享三个Oracle数据库索引监控脚本,值得收藏

    概述 我们在维护业务系统时,可能会建立很多索引,那么这些索引的使用到底怎么样,是否有些索引一直都没有用到过,那么oracle 是如何监控索引的使用状况,是否可以清除它们? 监控索引 一般有两种方式: ...

  2. oracle 索引监控

    oracle 索引监控 即使是一个初期设计非常优秀的数据库系统,在持续运行一段时间后,由于数据量的累加,数据库对象的变化,甚至是业务方面的改变,多可能会对数据库的性能带来影响.所以一个持续.健康的数据 ...

  3. 查看oracle索引状态,oracle监控索引的使用情况

    1.使用monitor index来监控索引使用 监控单个索引使用情况:alter index monitoring usage; 关闭监控: alter index nomonitoring usa ...

  4. SQL Tuning 基础概述05 - Oracle 索引类型及介绍

    一.B-Tree索引 三大特点:高度较低.存储列值.结构有序 1.1利用索引特性进行优化 外键上建立索引:不但可以提升查询效率,而且可以有效避免锁的竞争(外键所在表delete记录未提交,主键所在表会 ...

  5. [转载]oracle索引的简单总结

    原文地址:oracle索引的简单总结作者:kindle 一.索引的概念: 数据库的索引类似于书籍的索引.在书籍中,索引允许用户不必翻阅完整个书就能迅速地找到所需要的信息.在数据库中,索引也允许数据库程 ...

  6. 索引名 oracle,ORACLE 索引名称矫情

    oracle 索引英文名称很多,翻译过来的话也很多中文名称,不过总得来说词不达意.也就是说讲中文的时候,对方无法理解你说的是啥意思,啥情况,啥原理. 比如前缀,非前缀.本地和全局,普通和分区.B树和位 ...

  7. Oracle索引失效问题

    Oracle 索引不起作用的几种情况: 1,<> 2,单独的>,<,(有时会用到,有时不会) 3,like "%_" 百分号在前.(可采用在建立索引时用re ...

  8. ORACLE常用性能监控SQL【一】

    目录(?)[+] 系列 ORACLE常用性能监控SQL[一] ORACLE常用性能监控SQL[二] Oracle-动态性能视图解读 系列 死锁后的解决办法 生成Kill Session语句 查看导致死 ...

  9. Oracle 索引扫描的五种类型

    之前在讨论CBO和RBO的时候提到了索引扫描的几种类型. Oracle Optimizer CBO RBO http://blog.csdn.net/tianlesoftware/archive/20 ...

最新文章

  1. XP中预防U盘自动运行病毒的方法!
  2. (十)Centos之文件搜索命令find
  3. python教程是用什么博客写的-用Python和Pygame写游戏-从入门到精通(目录)
  4. jni releative
  5. 保持边缘平滑的图像(曲率)
  6. 操作篇 bgp协议了解与学习
  7. 零基础 Amazon Web Services (AWS) 入门教程图文版(二)
  8. python中pprint是干什么的_Python中的pprint折腾记
  9. Unity3D(二)游戏对象及组件
  10. java text类型转换_java语言实现Text格式转换成pdf文件
  11. h264 pps sps详解
  12. webUploader选择文件按钮无效
  13. TI C64X+通用库函数使用手册
  14. 常用数据库分页查询SQL汇总
  15. SharePoint CAML Query小结
  16. 基于机智云IoT开发平台的温室番茄远程监控系统
  17. QQ群怎么快速封群,如何举报骗子QQ群可以使之封群?
  18. python实现商品管理系统_商品管理系统(示例代码)
  19. vector访问失效的问题
  20. 编码——永不退色的计算机科学经典著作

热门文章

  1. 2015 UESTC Winter Training #6【Regionals 2010 North America - Rocky Mountain】
  2. (转)c++模版:包含模型、显式实例化、分离模型
  3. 如何设置mysql远程访问
  4. Redis的订阅发布功能对比RabbitMQ消息队列
  5. 转载:Android开发相关的Blog推荐——跟随大神的脚步才能成长为大神
  6. Hadoop单点安装(伪分布式)
  7. 坚果云 operationnotallowed webdav_妙用 NAS 服务,将你的知识库和音乐库搬上「云」...
  8. 松原哪家计算机学校好,松原高中学校排名2021最新排名,松原高中排名前十
  9. 计算机专业 职业素养论文,计算机专业本科毕业论文-20210707222739.docx-原创力文档...
  10. bootstrap和圣杯布局