充分利用X$表上的特殊索引, 可以加快对性能视图的访问速度, 从而编译高效的性能监控程序. Oracle提供了一个视图可以用来查询在X$表的那些列上有这样的索引存在, 如下所示:

SQL> DESC V$INDEXED_FIXED_COLUMN
Name                 Null?    Type
-------------------- -------- -------------
TABLE_NAME                    VARCHAR2(30)
INDEX_NUMBER                  NUMBER
COLUMN_NAME                   VARCHAR2(30)
COLUMN_POSITION               NUMBER

    有时我感觉查询V$SYSSTAT中的记录都有些慢, 看看它上面有没有索引进技术, 先用AUTOTRACE看一下这个视图的X$表是那一个.

SQL> SELECT * FROM V$SYSSTAT;

-------------------------------------------------------
| Id  | Operation        | Name       | Rows  | Bytes |
-------------------------------------------------------
|   0 | SELECT STATEMENT |            |     1 |    99 |
|*  1 |  FIXED TABLE FULL| X$KSUSGSTA |     1 |    99 |
-------------------------------------------------------

    在9i中这个基表是有一个索引存在的, 对应于STATISTIC#这一列, 不过在10g中没有了, 不知道为什么取消了?

SQL> SELECT * FROM V$INDEXED_FIXED_COLUMN WHERE TABLE_NAME='X$KSUSGSTA';

no rows selected

    否则我又想要化简为烦, 来进行UNION ALL了.