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'));

  • 相关阅读:
    React——JSX语法【三】
    React——虚拟DOM创建的两种方式【二】
    Nginx——虚拟主机简介
    Linux——Centos8虚拟机添加网卡未显示
    React——React简介和基本使用【一】
    Linux——删除系统python导致yum无法使用
    SonarQube——Docker搭建SonarQube服务
    Linux——配置SSH免密登录
    Jumpserver——如何替换多因子认证
    GitLab——如何快速部署GitLab仓库
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/11014270.html
Copyright © 2011-2022 走看看