Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> RE: How to find no of blocks

RE: How to find no of blocks

From: <mteehan_at_erggroup.com>
Date: Thu, 27 Jul 2000 09:37:12 +0800
Message-Id: <10570.113075@fatcity.com>


I have been working on this for quite a while. It is possible to analyze the buffer cache, but it takes a lot of digging through such files as sql.bsq, catparr.sql and catpart.sql to find how things hang together. As for linking object ID's, on 8.1.6, x$bh.obj can be joined to one of sys.obj$.obj# or sys.obj$.DataObj#, depending on whether its partitioned, or a LOB 'virtual' object etc (note LOBs are particularly tricky to trace). I have built a pl/sql script that loads a table with data on each object in the buffer cache, how many blocks it has, their status, buffer pool, partition etc. After MUCH trial and error, Ive found various means of removing objects and loading objects to buffer cache using pl/sql scripts, which allows me to switchover from OLTP to end of day DSS processing without losing my KEEP pool. Also allows OLTP daily partitioned tables to roll in/out without blatting memory.
 Works like a treat (It autorefreshes to an access97 interface with buttons to control the oracle buffer cache).
IMHO Oracle should allow DBA's to do this stuff : it should be possible to define various buffer pools and assign objects to them to control how memory is used (Oracle 10 will be here any day now).

Regards
Mark Teehan

Received on Wed Jul 26 2000 - 20:37:12 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US