充分利用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了.