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: Oracle internals.

Re: Oracle internals.

From: Howard Rogers <dba_at_hjrdba.com>
Date: Mon, 10 Dec 2001 10:23:29 +1100
Message-ID: <%vSQ7.12$bk2.1044@inet-nntp1.oracle.com>

"Andrej" <andrej611_at_wp.pl> wrote in message news:9v0g9g$ji8$1_at_korweta.task.gda.pl...
> > > I am looking for the following info concering Oracle internals:
> > > - how does Oracle know what blocks are assigned to what tables ? does
is
> > > blindly scan throug all the blocks ?
> >
> > No, it holds that information in data dictionary tables. Specifically,
> UET$
> > records what extents exist, and who owns them. Tables such as OBJ$ and
> TAB$
> > also come into play. In locally managed tablespace, a bitmap at the
> header
> > of the tablespace indicates whether a block is reserved for use or not.
> > Data dictionary entries still say which object owns which block.
>
> But data dictionary is also a bunch of TABLE(s). So your asnwer produces
an
> infinite loop ... it knows where the table blocks are by querying a table.

Sadly, my answer happens to be correct! You might reasonably ask, by analogy, how the hell an operating system ever starts up, since to start up, it needs to read a bit of info off a disk, and reading the disk requires an operating system.

The fact is, o/ses get started by using bootstrap techniques -and in fact there is a bootstrap segment inside Oracle, too.

So yes, it *can* query a table to find out where a table exists.

>
> I am trying to find out how Oracle recognizes what tables ARE in a SYSTEM
> tablespace datafiles and how are blocks internaly linked with them - for
> example what blocks make UET$.
>

Take a look at sql.bsq, which is the script that is run when you issue the 'create database' command. It might help.

> > >So where is a
> > > glue that holds a blocks/extents of a segment toegether ?
> >
> > There is no such substance.
>
> There must be. Otherwise Oracle wouldn't work at all. A single block holds
a
> data about rowids in the header. But how is data distionary build so that
> Oracle knows where to look for rows making a single schema object ?
>

UET$ mostly. Maybe a bit of OBJ$. Data dictionary tables in short.

Regards
HJR
>
>
>
>
Received on Sun Dec 09 2001 - 17:23:29 CST

Original text of this message

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