Re: How does Oracle know where to read from
Date: Sat, 11 Apr 2009 00:03:08 +0200
Not really, I understand that part but to find something we need to know where to look for.
Say we have segments emp and its primary key emp_pk in tablespace users and absolute file_id 5, we want to run this query
where empno = 1234
If this is the input, how does Oracle know this row is located in file_id 5?
If recursive queries is used to find and compute the dba then an index unique scan will never be 1 consistent get (in the second execution) no?
2009/4/10 K Gopalakrishnan <kaygopal_at_gmail.com>
> Alex, Let me try to answer in simple way.
> When you run a query, data dictionary provides the file#,block# or
> extent info for that table. Once you know the file#,blok# you can
> compute the dba and search the buffer cache for that dba (yet another
> simple hash function). If not found send an I/O request on that
> Is this what you are looking for or something else/?
> On Fri, Apr 10, 2009 at 3:51 PM, amonte <ax.mount_at_gmail.com> wrote:
> > Hi all
> > I have a probably very basic question but I cant think how Oracle does
> > 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