用V$BH查看表查看数据缓冲区

很多Oracle的专家都不知道,Oracle在数据缓冲区里有一个查看表。虽然Oracle最初开发V$BH查看表的时候把它用于Oracle平行服务器(Oracle Parallel Server,OPS),但是你也可以用V$BH查看表来显示数据库里每个对象类型的数据缓冲区里数据块的数量。

这个查询让人尤其兴奋,因为你现在可以知道哪些对象正在消耗数据缓冲区。在Oracle9i里,你可以使用这一信息来隔离表格,以便用不同的块大小来分隔RAM缓冲区。

下面是一个示例查询,它显示了数据库里每个对象对数据缓冲区的使用情况。要注意,这个脚本使用了一个Oracle9i标量子查询,而它在Oracle9i之前的系统里是无法使用的,除非你注释掉c3这个列。

column c0 heading 'Owner'                     format a15
column c1 heading 'Object|Name'               format a30
column c2 heading 'Number|of|Buffers'         format 999,999  
column c3 heading 'Percentage|ofData|Buffer' format 999,999,999

select
   owner                        c0,
   object_name                  c1,
   count(1)                     c2,
   (count(1)/(select count(*) from v$bh)) *100  c3
from
   dba_objects o,
   v$bh        bh
where
   o.object_id  = bh.objd
and
   o.owner not in ('SYS','SYSTEM','AURORA$JIS$UTILITY$')
group by
   owner,
   object_name
order by
   count(1) desc
;

下面是一个来自Oracle Financials数据库的一个真实列表。我们很容易就可以看到数据缓冲区里最常用的表格,以及它们所消耗的内存量。在规划Oracle9i里的多数据缓冲池的时候,这就是无价的信息。

                                                                                                                      Number
                                        Object                                                                  of
Owner                             Name                                                                   Buffers
---------------                    ------------------------------                                       --------
INV                                 MTL_SYSTEM_ITEMS                                      7,098
WIP                                WIP_TRANSACTION_ACCOUNTS_N1        6,583
PERFSTAT                    STATS$ERROR_LOG                                         5,635
OE                                   SO_LINES_ALL                                                   5,091
OE                                   SO_LINES_ALL                                                   5,091
INV                                 MTL_DEMAND                                                  4,924
INV                                 MTL_ITEM_CATEGORIES                               3,098
MRP                               MRP_FORECAST_DATES                                2,248


本文作者: Donald Burleson做数据库管理员已经有23年了,曾经写过14本关于数据库的书和超过100篇的文章。他是《Oracle内幕(Oracle Internals)》的主编,并经营着Burleson Oracle咨询公司(Burleson Oracle Consulting)。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值