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

ZDNet软件频道 时间:2004-02-27 作者:Builer.com |  我要评论()
本文关键词:
很多Oracle的专家都不知道,Oracle在数据缓冲区里有一个查看表。虽然Oracle最初开发V$BH查看表的时候把它用于Oracle平行服务器但是你也可以用V$BH查看表来显示数据库里每个对象类型的数据缓冲区里数据块的数量。
本文译自Builder.com,未经许可请勿转载

很多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)。


责任编辑:李宁

欢迎评论投稿

百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134