对于DML操作来说,索引对于数据库是一个性能负担.如果索引没有被有效的使用,那么其存在性就值得从新考虑.
1. 从Oracle9i开始,Oracle允许你监视索引的使用:
>
> SQL> connect scott/tiger@conner
> Connected to Oracle9i Enterprise Edition Release 9.2.0.4.0
> Connected as scott
>
> SQL> select index_name from user_indexes;
>
> INDEX_NAME
> ------------------------------
> PK_DEPT
> PK_EMP
>
> 开始监视pk_dept索引:
>
> SQL> alter index pk_dept monitoring usage;
>
> Index altered
>
> 在此过程中,如果查询使用索引,将会记录下来:
>
> SQL> select * from dept where deptno=10;
>
> DEPTNO DNAME LOC
> ------ -------------- -------------
> 10 ACCOUNTING NEW YORK
>
> 停止监视:
>
> SQL> alter index pk_dept nomonitoring usage;
>
> Index altered
>
> 查询索引使用情况,YES表示在监视过程中索引被使用到:
>
> SQL> select * from v$object_usage;
>
> INDEX_NAME TABLE_NAME MONITORING USED START_MONITORING END_MONITORING
> ----------------- ------------------ ---------- ---- ------------------- -------------------
> PK_DEPT DEPT NO YES 10/28/2004 10:55:19 10/28/2004 10:55:47
>
> SQL>
>