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

    1、冗余索引的弊端   

    大量冗余和无用的索引导致整个数据库性能低下,耗用了大量的CPU与I/O开销,具体表现如下:      

    a、耗用大量的存储空间(索引段的维护与管理)      

    b、增加了DML完成的时间      

    c、耗用大量统计信息(索引)收集的时间      

    d、结构性验证时间      

    f、增加了恢复所需的时间

    2、单个索引监控        

    a、对于单个索引的监控,可以使用下面的命令来完成          

    alter index <INDEX_NAME> monitoring usage;      

    b、关闭索引监控         

    alter index <INDEX_NAME> nomonitoring usage;      

    c、观察监控结果(查询v$object_usage视图)         

    select * from v$object_usage

    3、schema级别索引监控(不含SYS用户)

    a、直接执行脚本来开启索引监控

    robin@SZDB:~/dba_scripts/custom/sql> more idx_monitor_on.sql

    SET HEADING OFF  FEEDBACK OFF  TERMOUT OFF  ECHO OFF;

    SET PAGESIZE 0;

    SPOOL /tmp/mnt_idx.sql

    SELECT 'ALTER INDEX ' || owner || '.' || index_name || ' MONITORING USAGE;'  FROM dba_indexes 

    WHERE owner IN (SELECT username FROM dba_users WHERE account_status = 'OPEN')      

    AND owner NOT IN ('SYS', 'SYSTEM', 'PERFSTAT', 'MGMT_VIEW', 'MONITOR', 'SYSMAN', 'DBSNMP');

    SPOOL OFF;

    b、禁用索引监控

    robin@SZDB:~/dba_scripts/custom/sql> more idx_monitor_off.sql

    SET HEADING OFF  FEEDBACK OFF  TERMOUT OFF  ECHO OFF;

    SET PAGESIZE 0;

    SPOOL /tmp/un_mnt_idx.sql

    SELECT 'ALTER INDEX ' || owner || '.' || index_name || ' NOMONITORING USAGE;'  FROM dba_indexes 

    WHERE owner IN (SELECT username  FROM dba_users  WHERE account_status = 'OPEN')      

    AND owner NOT IN ('SYS', 'SYSTEM', 'PERFSTAT', 'MGMT_VIEW', 'MONITOR', 'SYSMAN', 'DBSNMP');

    SPOOL OFF;

    c、查看索引监控结果

    set linesize 190

    SELECT u.name owner,      

    io.name index_name,      

    t.name table_name,      

    DECODE (BITAND (i.flags, 65536), 0, 'NO', 'YES') monitoring,      

    DECODE (BITAND (ou.flags, 1), 0, 'NO', 'YES') used,      

    ou.start_monitoring start_monitoring,      

    ou.end_monitoring end_monitoring 

    FROM sys.user$ u,       sys.obj$ io,       sys.obj$ t,       sys.ind$ i,       sys.object_usage ou

    WHERE i.obj# = ou.obj# AND io.obj# = ou.obj# AND t.obj# = i.bo#

    AND u.user# = io.owner#      

    AND u.name=decode(upper('&input_owner'),'ALL',u.name,upper('&input_owner'));

  • 相关阅读:
    Gson的使用
    通过java解析域名获得IP地址
    SQL竖列变横列
    jQuery判断checkbox是否选
    mysql数据添加时如果这条数据存在进行修改
    localStorage使用总结
    如何在一个数组中求出任意几个数的和等于给定数
    外汇EA(LRY_FX_Robot_V5)
    爱奇艺、腾讯、优酷、搜狐、芒果、乐视、PPTV、音悦台等VIP视频免费观看
    Failed to sync Gradle project 'XX'错误解决
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11014269.html
Copyright © 2011-2022 走看看