How the Dynamic Performance Data Dictionary Views Are Built

Unlike the static data dictionary views, which are views on existing tables, the dynamic performance data dictionary views are views on a set of tables that do not physically exist in the database; instead they are actually views of X$ tables, which are representations of internal memory structures in the Oracle instance. For example:

  • V$DATABASE is a public synonym for the view SYS.V_$DATABASE.

  • SYS.V_$DATABASE is a view on SYS.V$DATABASE.

  • V$DATABASE (which is not defined in DBA.OBJECTS) is a view on the memory structure X$KCCDI.

The exact specification of how the V$ views are built is maintained within the Oracle kernel. The view V$FIXED_VIEW_DEFINITION defines all V$ views as views based upon the X$ tables.

How these views are built is important to understanding how they work. Initially defined within the Oracle kernel, these hardcoded V$ tables are accessible once the instance has been started or the database has been mounted. Once the database is opened, the normal SQL processing takes over, and the public synonyms referencing the views are used. With public synonyms, the same name is available whether you are CONNECTed INTERNAL before the database is opened, or are connected as a user with DBA privileges after the database is opened.

The relatively few V$ views that are only available once the database is open turn out to be true views, based upon X$ or other V$ tables.

Get Oracle Database Administration: The Essential Refe now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.