Oracle FAQ | Your Portal to the Oracle Knowledge Grid |
Home -> Community -> Usenet -> c.d.o.server -> Re: physical addresses of data blocks
"Rachel Wilson" <wilsonr_at_logica.com> wrote in message
news:936259dc.0302250326.54b3488d_at_posting.google.com...
> I read a very large thread on this message board about oracle myths
> that mentioned in passing that those blocks that we novices think are
> contigeous - aren't - because of how they are allocated by the OS.
> (you cruel cruel people for dropping this bombshell :) )
:( Don't forget raw volumes where this doesnt apply)
>
> It made me wonder if there is a store of the actual pysical address of
> each block on the disk controler/disk/partition etc held by Oracle.
> If so, where? If the lookup is done using the rowid and the OS
> resolves the datafile number etc and knows where to look for it, is
> there an index of all the rowid's and which segment they relate to?
A rowid gives you a close approximation to this vis:
An extended rowid has a four-piece format, OOOOOOFFFBBBBBBRRR:
a.. OOOOOO: The data object number that identifies the database segment
(AAAAao in the example). Schema objects in the same segment, such as a
cluster of tables, have the same data object number.
b.. FFF: The tablespace-relative datafile number of the datafile that
contains the row (file AAT in the example).
c.. BBBBBB: The data block that contains the row (block AAABrX in the
example). Block numbers are relative to their datafile, not tablespace.
Therefore, two rows with identical block numbers could reside in two
different datafiles of the same tablespace.
d.. RRR: The row in the block
Does this give you what you want?
-- Niall Litchfield Oracle DBA Audit Commission UKReceived on Tue Feb 25 2003 - 06:32:41 CST