RE: what is the data dictionary?

  • From: "Goulet, Richard" <Richard.Goulet@xxxxxxxxxxx>
  • To: "Martin Berger" <martin.a.berger@xxxxxxxxx>
  • Date: Tue, 22 Sep 2009 08:24:03 -0400

    No creating an object as sys does not make it part of the data
dictionary and besides it is very bad practice to do so.  Any object
that is owned by sys is not exported from the database by the exp
utility thereby making it non transportable.  If your really interested
in what makes up the data dictionary look in sql.bsq as it has the basic
data dictionary.  Warning: Venturing down into this layer is NOT for the
faint of heart as things get really cryptic fast.  Even data within one
of these tables is not obvious as to it's meanings.  Many of the dba_
views use decodes, bitand, and other similar functions to turn them into
meaningful data, not information.  Also be careful of stuff that you
pick up on the internet.  Some people like to try and demonstrate a
great understanding of what Oracle is doing, sometimes to disastrous
results.  A certain person who owns a consulting firm with his last name
as part & parcel of the company name is rather infamous for his
erroneous publishing.  Basically if it's not published in the Oracle
Reference manual by Oracle then your venturing into their proprietary
area and what happens is totally unknown.  Many years back the
aforementioned person published a way to rename objects in the database
by twiddling with the x$ tables.  More than one database was ruined
beyond help because of that.  Many of us who have been around this
product for many a year (since 1985 for me) have come to the conclusion
that piddling around in that area is a case of no reward for much

Dick Goulet 
Senior Oracle DBA/NA Team Lead 
PAREXEL International 



From: Martin Berger [mailto:martin.a.berger@xxxxxxxxx] 
Sent: Tuesday, September 22, 2009 4:44 AM
To: Goulet, Richard
Subject: Re: what is the data dictionary?


thank you for the answer.
Until now I assume the Data Dictionary is a set of tables (e.g. obj$
tab$, ...) and views representing them (DBA_OBJECTS, DBA_TABLES, ...).
They all belong to schema SYS (ok, some synonyms may belong to PUBLIC?)
But if I create a table sys.myobj$ in tablespace SYSTEM and a vie
DBA_MYOBJ on this table, does they belong to the data dictionary also?
Or is there any other quality how the Oracle kernel decides which
objects to treat as DATA DICTIONARY and which not?

I disagree a little about the v$ (or x$) views:
From my point of view, V$bh is (also) there to tell me WHAT is in the
cache (beside some other infos like the corresponding latches, buckets

There is a lot material available about buffer cache, but I didn't find
anything similar about row cache. Is this because it's not available or
noone is interrested in this data structure and its affects?


            First off the data dictionary is listed under those views
that start with DBA or USER.  They point you at what your or others
tables/objects are and their properties.  As far as any view that starts
with V$ those are dynamic performance views of internal data structures.
They are not there to tell you what is in the caches, but how they are

        Dick Goulet 
        Senior Oracle DBA/NA Team Lead 
        PAREXEL International 



        From: oracle-l-bounce@xxxxxxxxxxxxx
[mailto:oracle-l-bounce@xxxxxxxxxxxxx] On Behalf Of Martin Berger
        Sent: Monday, September 21, 2009 4:16 PM
        To: ORACLE-L
        Subject: what is the data dictionary?
        Hi List, 

        once again I stumble about two realy dumb (and related)
        1) what is the data dictionary (or how can I identify objects
which belongs to it)?
        2) is there any spyhole to view into the row cache (like v$bh
for the buffer cache)?

        According to the documentation, the data dictionary is
        "A read-only collection of database tables and views containing
reference information about the database, its structures, and its

        The row cache is  defined with
        "A memory area in the shared pool
.htm#CBAIACIC>  that holds data dictionary
.htm#CHDJCHJA>  information. The data dictionary cache is also known as
the row cache because it holds data as rows instead of buffers, which
hold entire data blocks."
        Even v$rowcache seems not as featured as I'd like it to be. 
        This question is not based on any need,  just pure curiosity. 
         thank you for any hint,


Other related posts: