RE: How does Oracle know where to read from

From: Mark W. Farnham <mwf_at_rsiz.com>
Date: Fri, 10 Apr 2009 17:09:00 -0400
Message-ID: <58F3BC51C3754E95A39F1E647C73DA1E_at_rsiz.com>



If it is a full table scan, then it gets it from the same underlying places as those that comprise the view dba_extents, depending on object type.

If it is an index lookup, each row reference in each index leaf block has a row block address in case you need more than the key columns and actually have to look up the block (or blocks).

Migrated blocks have a relocation address in the original block.

Multiblock rows have the address of the next piece in each non-last piece.

That about covers the basics. IOTs and Hash clusters are beyond the scope of this email.

mwf

-----Original Message-----

From: oracle-l-bounce_at_freelists.org [mailto:oracle-l-bounce_at_freelists.org] On Behalf Of amonte
Sent: Friday, April 10, 2009 4:52 PM
To: oracle-l_at_freelists.org
Subject: How does Oracle know where to read from

Hi all

I have a probably very basic question but I cant think how Oracle does it.

When we query a table we know that data block address is hashed to read if buffer chain if reading from cache, otherwise look the rows in the data block address.

My question is when we run a query how is the data block address obtained? From where?

Alex
--

http://www.freelists.org/webpage/oracle-l

--

http://www.freelists.org/webpage/oracle-l Received on Fri Apr 10 2009 - 16:09:00 CDT

Original text of this message