zoukankan      html  css  js  c++  java
  • oracle索引的监控

    最近的研究发现 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

  • 相关阅读:
    Redis哨兵(Sentinel)模式
    一个http请求就是一个线程吗,java的服务是每收到一个请求就新开一个线程来处理吗
    Redis 快速入门
    Redis 持久化之RDB和AOF
    Junit 入门使用教程 转自:http://www.cnblogs.com/ysocean/p/6889906.html
    Spring里PropertyPlaceholderConfigurer类的使用 转自:https://www.cnblogs.com/huqianliang/p/5673701.html
    Apache Commons Codec 编码/解码 (Base64/MD5/SHA1/SHA256等算法) 转自https://blog.csdn.net/hbtj_1216/article/details/52813741
    hive中时间日期函数的使用
    关于mat函数
    strip 和split
  • 原文地址:https://www.cnblogs.com/sopost/p/2190120.html
Copyright © 2011-2022 走看看