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: How does Oracle Server Process get data block Information

Re: How does Oracle Server Process get data block Information

From: Barbara Kennedy <barbken_at_teleport.com>
Date: 1998/12/06
Message-ID: <tDAa2.2221$KG4.1470389@news.teleport.com>#1/1

Good question.
Some of this is conjecture.
<conjecture>
When the database starts up it reads the control file and finds the file that contains the system tablespace. In the header of the system tablespace is probably enough information to find the starting points for one or more data dictionary tables (probably whatever is the underlying structures for dba_segments - remember the all_,dba_ and user_ tables are really views of these tables with "funny" names). I imagine the underlying dba_segments structure contains all the information about where all the data and index information is. What file, what starting block, what ending block a particular database ojbect occupies.
<end conjecture>
From there it is a "simple" matter of taking a query, parsing it out, figuring out what index to use, using the index to get a row id and then using the rowid to get the data. In Oracle 7 the rowid consists of 3 parts the file number, the block number within a file and the row number within the block. In Oracle 8 the same basic concept applies except the rowid is larger and the first part is what file within a tablespace (so a realative file number - this is how they got the database to hold so much more data), what block within a file and what row within a block.

Jim

Jochen Joerg wrote in message <366811A5.B020A276_at_step.de>...
>hello,
>
>I have the following question:
>
>When the Oracle server wants to retrieve the data he first looks up in
>the DB-block buffer of the SGA if the corresponding database blocks are
>loaded.
>If not the Oracle Server Process has to load the corresponding database
>blocks in the DB block buffer.
>
>Here my question occurs:
>
>From where does the oracle server process get the information what
>databse blocks do contain the data which is requested for ?
>
>Where is the information stored about what datafiles contains which
>database blocks?
>I suppose that the information is stored in the data dictionary. But
>also for accessing the data dictionary the server has to get the
>information what database blocks to access and where these database
>blocks are located.
>
>Maybe somebody does know an answer. Thanks in advance.
>Jochen
>
>
>
Received on Sun Dec 06 1998 - 00:00:00 CST

Original text of this message

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