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

Home -> Community -> Usenet -> c.d.o.server -> Re: physical addresses of data blocks

Re: physical addresses of data blocks

From: Rachel Wilson <wilsonr_at_logica.com>
Date: 27 Feb 2003 08:29:55 -0800
Message-ID: <936259dc.0302270829.606de001@posting.google.com>


"Niall Litchfield" <n-litchfield_at_audit-commission.gov.uk> wrote in message
> Does this give you what you want?

mmm, not really. I understand that the row ID, in short, tells you which datafile and where to look for the block. But perhaps its my misunderstanding of how the rowid is stored.

I'll explain the thinking that lead to this question:

Before a block is loaded into memory it has to be read from somewhere on disk - how does oracle know where to go to get that exact block.

say I wanted to look at the file mydoc.txt on a unix machine - i type 'vi mydoc.txt' and "something" internal to unix has a lookup of the starting block of my file which also points to the next and so on til the end of my file and that gets loaded into memory. when I do a select * from mytable and assuming its not already in memory, how does oracle know where to go on disk to find the blocks it needs?

being unsure of when the rowid is assigned i would make a guess that there is a list internal to oracle that knows which segment has which rowids and uses this to get the datafile and block and the operating system (in my case unix) goes off and finds it for me.

And because the blocks aren't contigeous it can't just load in a whole segment from A-B, does it work like the unix pointer process?

(by the way - if you do a select * from mytable where..., does it load everything into memory and then examine and filter out the irrelevent ones (i would assume this was the case) or filter then load) Received on Thu Feb 27 2003 - 10:29:55 CST

Original text of this message

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