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

    oracle 索引监控

        即使是一个初期设计非常优秀的数据库系统,在持续运行一段时间后,由于数据量的累加,数据库对象的变化,甚至是业务方面的改变,多可能会对数据库的性能带来影响。所以一个持续、健康的数据库系统,时常在半年或一年进行一次全面体检。其中极其重要的体检的指标就是对索引的修改。有可能当初设计合理的索引现在没有发挥大的作用,也有可能已经完成没有作用,甚至可能对数据库性能产生了负担。。。 那么就需要我们去监控、分析、修改甚至删除了。

        我们可以打开索引监控性能。查看一段时间内索引的使用频率。

    [TEST1@orcl#26-12月-10] SQL>select index_name,table_name from user_indexes where table_name='T';

    INDEX_NAME                     TABLE_NAME ------------------------------ ------------------------------ T_INDEX                        T

    打开监控功能:

    [TEST1@orcl#26-12月-10] SQL>alter index t_index monitoring usage;

    索引已更改。

    运行一段时间后,查看v$object_usage

    [TEST1@orcl#26-12月-10] SQL>select * from v$object_usage where index_name='T_INDEX';

    INDEX_NAME                     TABLE_NAME                     MON USE START_MONITORING    END_MONITORING ------------------------------ ------------------------------ --- --- ------------------- ------------------- T_INDEX                        T                              YES YES 12/26/2010 17:04:23

    可以分析索引的使用次数、频率,为优化作出判断。

    分析完后,关闭监控功能。因为监控也消耗一定的资源。

    [TEST1@orcl#26-12月-10] SQL>alter index t_index nomonitoring usage;

    索引已更改。

    ----------------------------20101228补充-------------------------------------------

    [TEST1@orcl#28-12月-10] SQL>alter index v_y monitoring usage;

    索引已更改。

    [TEST1@orcl#28-12月-10] SQL>select * from v$object_usage;

    INDEX_NAME                     TABLE_NAME                     MON USE START_MONITORING    END_MONITORING ------------------------------ ------------------------------ --- --- ------------------- ------------------- T_INDEX                        T                              NO  YES 12/26/2010 17:04:23 12/26/2010 18:27:14 V_Y                            Y_ONE                          YES NO  12/28/2010 23:00:00

    我现在查询y_one表:

    [TEST1@orcl#28-12月-10] SQL>set autotrace on

    [TEST1@orcl#28-12月-10] SQL>select * from y_one where id=1;

            ID NAME ---------- ----------------------------------------          1 aaa

    执行计划 ---------------------------------------------------------- Plan hash value: 4290364449

    ------------------------------------------------------------------------------------- | Id  | Operation                   | Name  | Rows  | Bytes | Cost (%CPU)| Time     | ------------------------------------------------------------------------------------- |   0 | SELECT STATEMENT            |       |     1 |     7 |     2   (0)| 00:00:01 | |   1 |  TABLE ACCESS BY INDEX ROWID| Y_ONE |     1 |     7 |     2   (0)| 00:00:01 | |*  2 |   INDEX RANGE SCAN          | V_Y   |     1 |       |     1   (0)| 00:00:01 | -------------------------------------------------------------------------------------

    OK,使用到了v_y索引。

    [TEST1@orcl#28-12月-10] SQL>select * from v$object_usage where index_name='V_Y';

    INDEX_NAME                     TABLE_NAME                     MON USE START_MONITORING    END_MONITORING ------------------------------ ------------------------------ --- --- ------------------- ------------------- V_Y                            Y_ONE                          YES YES 12/28/2010 23:00:00

    总结:v$object_usage最大的作用是监控该用户下的所有索引是否被使用。我们可以在上班时打开所有索引的监控,下班后关闭并查询那些索引没有被使用到。如果没有被使用到则要考虑采取一些措施了。

    另:它不能统计索引的被使用次数和频率。

  • 相关阅读:
    [转]vc中socket编程步骤
    [转载]使用命名管道实现进程间通信
    换肤软件摘要
    3D 专业词汇 (转)
    如何从 Microsoft DirectShow 筛选器图形获取数据(转)
    “人大艺术学院”“赵雅芝中文网”等网站被挂马 狼人:
    微软将发布5月安全漏洞补丁 修补PPT 狼人:
    专家提醒:网络挂马借“海运女”传播 狼人:
    黑客借“甲型流感”传毒 挂马疾病预防控制中心网站 狼人:
    黑客称攻破乔布斯亚马逊网站账户 欲售相关信息 狼人:
  • 原文地址:https://www.cnblogs.com/weixun/p/3231519.html
Copyright © 2011-2022 走看看