标识索引的使用情况

来源:互联网 发布:sap sql 编辑:程序博客网 时间:2024/04/27 23:08
尽管建立了索引,但Oracle9i之前的版本对于这些索引是否被使用过,没有任何记载。
Oracle9i对这方面做出了一些改进。Oracle9i可以记录某个索引是否被使用过,但Oracle9i只记录用过或没用过(YES/NO),即用过一次是用过,用过一万次也是用过。


如下:
1.scott登录


SQL> conn scott/tiger
Connected.


2.为了开启监督索引,使用以下命令:


SQL> alter index emp_ename_idx monitoring usage;


Index altered.


3.发一个简单的查询使用所建的索引emp_ename_idx


SQL> select ename,job,sal from scott.emp
  2  where ename like 'C%';


ENAME      JOB              SAL
---------- --------- ----------
CLARK      MANAGER         2450




4.使用数据字典v$object_usage获取索引的使用情况


SQL> select * from v$object_usage;


INDEX_NAME TABLE_NAME MON USE START_MONITORING    END_MONITORING
---------- ---------- --- --- ------------------- -------------------
EMP_ENAME_ EMP        YES YES 07/15/2013 12:56:38




查询得知:MON:YES,表示已经开启监督索引使用情况.
USE:YES,表示索引使用过.
START_MONITORING:表示开启监督的时间




5.使用DDL语句关闭索引监督


SQL> alter index emp_ename_idx nomonitoring usage;


Index altered.




6.查询一下:


SQL> select * from v$object_usage;


INDEX_NAME TABLE_NAME MON USE START_MONITORING    END_MONITORING
---------- ---------- --- --- ------------------- -------------------
EMP_ENAME_ EMP        NO  YES 07/15/2013 12:56:38 07/15/2013 13:04:12
IDX




查询得:
MON:NO,表示已经关闭监督。
USE:YES,表示使用过索引
START_MONITORING:表示开始监督的时间 
END_MONITORING:表示结束监督的时间