现在的位置: 首页 > 综合 > 正文

oracle索引监控

2013年10月30日 ⁄ 综合 ⁄ 共 870字 ⁄ 字号 评论关闭

oracle索引是加快查询速度,减少i/o操作的,但是如果索引无用的话
那他就是浪费资源的,尤其是在做DML操作时,这是 就需要我们查看
那些索引是无用的

相关视图:
user_indexes
user_ind_columns
v$object_usage

1. 查看表aa有哪些索引

SQL> select table_name,index_name from user_indexes
  2  where table_name='AA';

TABLE_NAME                     INDEX_NAME
------------------------------ ----------------------------
AA                             IDX_FUNC
AA                             IDX_BITM

已用时间:  00: 00: 00.09
SQL>

2. 监控制定索引

SQL> alter index  idx_func monitoring usage;

索引已更改。

已用时间:  00: 00: 00.39

SQL>select *  from aa where rownum<100;

 
3. 查看索引是否被用

SQL> select * from v$object_usage;

未选定行

SQL>

4.查完索引是否被用后,记得要关闭索引监控

SQL> alter index idx_func nomonitoring usage;

 

5.监控数据库所有的索引

等数据库运的足够多的sql语句时,查询v$object_usage

打开所有索引监控脚本

spool run_monitoring.sql

 select 'alter index  ' ||owner||'.'||  index_name|| ' monitoring usage'
    from dba_indexes;
    where owner not in ('SYS','SYSTEM')
spool off

然后运行脚本 run_monitoring.sql

@run_monitoring.sql

记得监控完关闭监控 

抱歉!评论已关闭.