在实例一中,我们读取到了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,获得系统中访问量比较大的字段以及其所在数据库,进一步优化存储的安排,提高系统性能。
![](https://img2024.cnblogs.com/blog/35695/202408/35695-20240826070647288-243310440.jpg)