v$bh 是从x$bh中提取出来的,这里只研究x$bh.
在x$bh视图中存放数据块信息,其中包括tch(接触次数),dbablk数据块号,tim上次修改tch的时间,lru_flag非脏数据缓冲列表标志,obj对象编号等等
tch越高表明该块被调用次数越多,oracle每3秒会更新一次这个字段,同时也会不定期地“冷却”它。
obj非常重要,可以知道当前这个块是那个对象使用的。通过查询dba_objects,关联object_id可以知道具体对象。
select
owner, object_name
from
dba_objects o,
v$bh bh
where
o.DATA_OBJECT_ID = bh.objd
and
o.owner ='OE'
select /*+ ordered */
e.owner ||'.'|| e.segment_name segment_name,
e.extent_id extent#,
x.dbablk - e.block_id + 1 block#,
x.tch,
l.child#
from
sys.v$latch_children l,
sys.x$bh x,
sys.dba_extents e
where
l.name = 'cache buffers chains' and
l.sleeps > &sleep_count and
x.hladdr = l.addr and
e.file_id = x.file# and
x.dbablk between e.block_id and e.block_id + e.blocks - 1
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14730395/viewspace-680559/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/14730395/viewspace-680559/
本文探讨了Oracle数据库中数据块的管理方式,特别是v$bh和x$bh视图的应用。通过对tch(接触次数)、dbablk数据块号等字段的研究,揭示了如何通过这些信息了解数据块的使用频率及关联的对象。
927

被折叠的 条评论
为什么被折叠?



