在实例一中,我们读取到了x$bh中的tch字段,该字段表示的该字段被读取/写入的次数,这个值在oracle的LRU算法中,是一个重要的参数,如果这个字段被访问,则该值就会增加:
1,第一次查看TCH的值:
1.1 获得表ID:
SQL> select data_object_id from dba_objects
2 where wner='SYS' and object_name='TEST';
DATA_OBJECT_ID
--------------
60629
1.2 获得表所占用的数据库ID:
SQL> select unique dbablk from x$bh where bj=60629;
1.3 获得该表中,62191数据库的tch值:
SQL> select tch from x$bh where bj=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 bj=60629 and dbablk=62191;
TCH
----------
3
用户可以继续试验,TCH会继续增长。由此可见,用户可以通过x$bh,获得系统中访问量比较大的字段以及其所在数据库,进一步优化存储的安排,提高系统性能。
下面的script可以列出top 10的热点块对象
select /*+rule*/ owner,object_name from dba_objects
where data_object_id in
(select obj from (select obj from x$bh order by tch desc) where rownum < 11);
1,第一次查看TCH的值:
1.1 获得表ID:
SQL> select data_object_id from dba_objects
2 where wner='SYS' and object_name='TEST';
DATA_OBJECT_ID
--------------
60629
1.2 获得表所占用的数据库ID:
SQL> select unique dbablk from x$bh where bj=60629;
1.3 获得该表中,62191数据库的tch值:
SQL> select tch from x$bh where bj=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 bj=60629 and dbablk=62191;
TCH
----------
3
用户可以继续试验,TCH会继续增长。由此可见,用户可以通过x$bh,获得系统中访问量比较大的字段以及其所在数据库,进一步优化存储的安排,提高系统性能。
下面的script可以列出top 10的热点块对象
select /*+rule*/ owner,object_name from dba_objects
where data_object_id in
(select obj from (select obj from x$bh order by tch desc) where rownum < 11);
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/15142212/viewspace-566838/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/15142212/viewspace-566838/