在实例一中,我们读取到了x$bh中的tch字段,该字段表示的该字段被读取/写入的次数,这个值在oracle的LRU算法中,是一个重要的参数,如果这个字段被访问,则该值就会增加:

1,第一次查看TCH的值:
    1.1 获得表ID:
    SQL> select data_object_id from dba_objects
    2     where owner='SYS' and object_name='TEST';

DATA_OBJECT_ID
    --------------
             60629
    
    1.2 获得表所占用的数据库ID:
    SQL> select unique dbablk from x$bh where obj=60629;
    
    1.3 获得该表中,62191数据库的tch值:
    SQL> select tch from x$bh where obj=60629 and dbablk=62191;

TCH
    ----------
             2

2,再次读入表test;
    SQL> select count(*) from test;

COUNT(*)
    ----------
         20000

3,重复1.3操作,再次检测tch值:
    SQL> select tch from x$bh where obj=60629 and dbablk=62191;

TCH
    ----------
             3

用户可以继续试验,TCH会继续增长。由此可见,用户可以通过x$bh,获得系统中访问量比较大的字段以及其所在数据库,进一步优化存储的安排,提高系统性能。

05-11 19:39