Data Dictionary und dynamische Performance-Views
Das zentrale Set schreibgeschützter Referenztabellen und Views jeder Oracle-Datenbank wird kollektiv als Data Dictionary bezeichnet. Die dynamischen Performanceansichten sind spezielle Ansichten, die kontinuierlich aktualisiert werden, während eine Datenbank geöffnet ist und verwendet wird.
-
Überblick über das Data Dictionary Ein wichtiger Teil einer Oracle-Datenbank ist das Data Dictionary. Dabei handelt es sich um eine schreibgeschützte Gruppe von Tabellen, die administrative Metadaten zur Datenbank bereitstellt.
-
Überblick über die dynamischen Performance-Views Während des gesamten Betriebs verwaltet Oracle AI Database eine Reihe virtueller Tabellen, die aktuelle Datenbankaktivität aufzeichnen.
-
Metadaten des Datenbankobjekts Das Package
DBMS_METADATAund die FunktionDBMS_DEVELOPER.GET_METADATAstellen Schnittstellen zum Extrahieren vollständiger Definitionen von Datenbankobjekten bereit.
Data Dictionary - Überblick
Ein wichtiger Bestandteil einer Oracle-Datenbank ist das Data Dictionary. Hierbei handelt es sich um eine schreibgeschützte Gruppe von Tabellen, die administrative Metadaten zur Datenbank bereitstellt.
-
Zweck des Data Dictionarys Das Data Dictionary enthält Metadaten, die den Inhalt der Datenbank beschreiben.
-
Data Dictionary-Komponenten Das Data Dictionary besteht aus Basistabellen und Views.
-
Funktionsweise des Data Dictionarys Der Oracle AI Database-Benutzeraccount
SYSist Eigentümer aller Basistabellen und der vom Benutzer zugänglichen Views des Data Dictionarys. -
Data Dictionary Storage Das Data Dictionary, in dem die Metadaten für die CDB als Ganzes gespeichert werden, wird nur in den System-Tablespaces gespeichert.
Zweck des Data Dictionarys
Das Data Dictionary enthält Metadaten, die den Inhalt der Datenbank beschreiben.
Beispiel: Das Data Dictionary enthält Informationen wie die folgenden:
-
Die Definitionen jedes Schemaobjekts in der Datenbank, einschließlich der Standardwerte für Spalten und Integritäts-Constraint-Informationen
-
Der Speicherplatz, der den Schemaobjekten zugeordnet ist und aktuell verwendet wird
-
Die Namen der Oracle AI Database-Benutzer, Berechtigungen und Rollen, die Benutzern erteilt wurden, und Auditinginformationen für Benutzer
-
Datenmanagement Das Data Dictionary ist ein zentraler Bestandteil der Datenverwaltung für jede Oracle-Datenbank.
-
Data Dictionary-Trennung in einer CDB In einer CDB werden die Data Dictionary-Metadaten zwischen der CDB-Root und den PDBs aufgeteilt. Aus Benutzer- und Anwendungsperspektive ist das Data Dictionary in jedem Container in einer CDB getrennt.
Datenmanagement
Das Data Dictionary ist ein zentraler Bestandteil der Datenverwaltung für jede Oracle-Datenbank.
Beispiel: Die Datenbank führt die folgenden Aktionen aus:
-
Greift auf das Data Dictionary zu, um Informationen über Benutzer, Schemaobjekte und Speicherstrukturen zu erhalten
-
Ändert das Data Dictionary bei jeder Ausgabe einer DDL-Anweisung
Da Oracle AI Database Data Dictionary-Daten wie andere Daten in Tabellen speichert, können Benutzer die Daten mit SQL abfragen. Beispiel: Benutzer können SELECT-Anweisungen ausführen, um ihre Berechtigungen zu bestimmen, welche Tabellen in ihrem Schema vorhanden sind, welche Spalten in diesen Tabellen enthalten sind, ob Indizes auf diesen Spalten basieren usw.
Siehe:
-
Oracle AI Database - Sicherheitshandbuch für Informationen zu Benutzeraccounts
Data Dictionary-Trennung in einer CDB
In einer CDB werden die Data Dictionary-Metadaten zwischen der CDB-Root und den PDBs aufgeteilt. Aus Benutzer- und Anwendungsperspektive ist das Data Dictionary in jedem Container in einer CDB getrennt.
In einer neu erstellten CDB, die noch keine Benutzerdaten enthält, enthält das Data Dictionary in der CDB-Root nur Systemmetadaten. Beispiel: Die Tabelle TAB$ enthält Zeilen, die nur von Oracle bereitgestellte Tabellen beschreiben, wie TRIGGER$ und SERVICE$. In der folgenden Grafik sind drei zugrunde liegende Data Dictionary-Tabellen dargestellt. Die roten Balken geben Zeilen an, die das System beschreiben.
Abbildung 1: Data Dictionary-Metadaten im CDB-Root

Beschreibung der Abbildung cncpt_vm_363.png
Angenommen, Sie erstellen eine PDB und dann ein hr-Schema, das die Tabellen employees und departments in dieser PDB enthält. Das Data Dictionary in der PDB enthält einige Zeilen, die von Oracle bereitgestellte Entitys beschreiben, und andere Zeilen, die vom Benutzer erstellte Entitys beschreiben. Beispiel: Die Tabelle TAB$ im PDB-Dictionary enthält eine Metadatenzeile für die Tabelle employees und eine Zeile für die Tabelle departments.
Abbildung 2: Data Dictionary-Architektur in einer CDB

Beschreibung der Abbildung cncpt_vm_361.png
Die obige Grafik zeigt, dass das Data Dictionary in der PDB Pointer zum Data Dictionary in der CDB-Root enthält. Intern werden von Oracle bereitgestellte Objekte wie Data Dictionary-Tabellendefinitionen und PL/SQL-Packages nur einmal in der CDB-Root dargestellt. Diese Architektur erreicht zwei Hauptziele innerhalb der CDB:
-
Reduzierung der Duplizierung
Beispiel: Anstatt den Quellcode für das PL/SQL-Package
DBMS_ADVISORin jeder PDB zu speichern, speichert die CDB den Code nur einmal inCDB$ROOT, wodurch Speicherplatz eingespart wird. -
Einfaches Datenbankupgrade
Wenn die Definition einer Data Dictionary-Tabelle in jeder PDB vorhanden war und die Definition in einem neuen Release geändert werden sollte, muss jede PDB separat upgegradet werden, um die Änderung zu erfassen. Wenn Sie die Tabellendefinition nur einmal in der CDB-Root speichern, wird dieses Problem behoben.
Data Dictionary-Komponenten
Das Data Dictionary besteht aus Basistabellen und Views.
Diese Objekte sind wie folgt definiert:
-
Basistabellen
Diese speichern Informationen über die Datenbank. Nur Oracle AI Database darf diese Tabellen schreiben und lesen. Benutzer greifen nur selten direkt auf die Basistabellen zu, da sie normalisiert sind und die meisten Daten in einem kryptischen Format gespeichert werden.
-
Ansichten
Diese entschlüsseln die Basistabellendaten in nützliche Informationen wie Benutzer- oder Tabellennamen, indem Joins und
WHERE-Klauseln verwendet werden, um die Informationen zu vereinfachen. Die Views enthalten die Namen und die Beschreibung aller Objekte im Data Dictionary. Einige Views sind für alle Datenbankbenutzer zugänglich, während andere nur für Administratoren gedacht sind.
In der Regel werden Data Dictionary Views in Sets gruppiert. In vielen Fällen besteht ein Set aus drei Views, die ähnliche Informationen enthalten und durch ihre Präfixe voneinander unterschieden werden, wie in der folgenden Tabelle dargestellt. Wenn Sie die entsprechenden Ansichten abfragen, können Sie nur auf die für Sie relevanten Informationen zugreifen.
Tabelle 1: Data Dictionary View-Sets
| Präfix | Benutzerzugriff | Inhalt | Notizen |
|---|---|---|---|
DBA_ |
Datenbankadministratoren | Alle Objekt | Einige DBA_-Ansichten enthalten zusätzliche Spalten mit Informationen, die für den Administrator nützlich sind. |
ALL_ |
Alle Benutzer | Objekte, für die der Benutzer über Berechtigungen verfügt | Enthält Objekte, deren Eigentümer der Benutzer ist. Diese Ansichten entsprechen der aktuellen Gruppe aktivierter Rollen. |
USER_ |
Alle Benutzer | Objekte, deren Eigentümer der Benutzer ist | Views mit dem Präfix USER_ schließen normalerweise die Spalte OWNER aus. Diese Spalte wird in den USER_-Views als der Benutzer impliziert, der die Abfrage abgibt. |
Nicht alle AnsichtenSets haben drei Elemente. Beispiel: Das Data Dictionary enthält eine DBA_LOCK-Ansicht, aber keine ALL_LOCK-Ansicht.
Die vom System bereitgestellte DICTIONARY-Ansicht enthält die Namen und abgekürzten Beschreibungen aller Data Dictionary Views. Die folgende Abfrage dieser Ansicht enthält eine Teilbeispielausgabe:
SQL> SELECT * FROM DICTIONARY
2 ORDER BY TABLE_NAME;
TABLE_NAME COMMENTS
------------------------------ ----------------------------------------
ALL_ALL_TABLES Description of all object and relational
tables accessible to the user
ALL_APPLY Details about each apply process that
dequeues from the queue visible to the
current user
.
.
.
-
Containerdatenobjekte in einer CDB Ein Containerdatenobjekt ist eine Tabelle oder View, die Daten enthält, die sich auf mehrere Container oder die gesamte CDB beziehen.
-
Views mit dem Präfix DBA_ Views mit dem Präfix
DBA_zeigen alle relevanten Informationen in der gesamten Datenbank an. DieDBA_-View ist nur für Administratoren gedacht. -
Ansichten mit dem Präfix ALL_ Ansichten mit dem Präfix
ALL_beziehen sich auf die Gesamtperspektive des Benutzers der Datenbank. -
Views mit dem Präfix USER_ Die Views, die für typische Datenbankbenutzer am wahrscheinlichsten von Interesse sind, sind Views mit dem Präfix
USER_. -
Die DUAL-Tabelle
DUAList eine kleine Tabelle im Data Dictionary, auf die Oracle AI Database und vom Benutzer geschriebene Programme verweisen können, um ein bekanntes Ergebnis zu gewährleisten.
Siehe:
-
Oracle AI Database-Referenz für eine vollständige Liste der Data Dictionary Views und ihrer Spalten
Containerdatenobjekte in einer CDB
Ein Containerdatenobjekt ist eine Tabelle oder View, die Daten enthält, die sich auf mehrere Container oder die gesamte CDB beziehen.
Containerdatenberechtigungen unterstützen eine allgemeine Anforderung, bei der sich mehrere PDBs in einer einzelnen CDB befinden, jedoch mit unterschiedlichen lokalen Administrationsanforderungen. Beispiel: Wenn Anwendungs-DBAs nicht lokal verwalten möchten, können sie den allgemeinen Benutzern Berechtigungen für Containerdaten für entsprechende Ansichten erteilen. In diesem Fall kann der CDB-Administrator auf die Daten für diese PDBs zugreifen. Im Gegensatz dazu erteilen PDB-Administratoren, die nicht möchten, dass der CDB-Administrator auf ihre Daten zugreift, keine Containerdatenberechtigungen.
Beispiele für Containerdatenobjekte sind von Oracle bereitgestellte Views, deren Namen mit V$ und CDB_ beginnen. Alle Containerdatenobjekte haben eine Spalte CON_ID. Die folgende Tabelle zeigt die Bedeutung der Werte für diese Spalte.
Tabelle 2: Container-ID-Werte
| Container-ID | Zeilen für |
|---|---|
0 |
Ganze CDB |
1 |
CDB$ROOT |
2 |
PDB$SEED |
| Alle anderen IDs | Vom Benutzer erstellte PDBs, Anwendungs-Roots oder Anwendungs-Seeds |
In einer CDB ist für jede DBA_-Ansicht eine entsprechende CDB_-Ansicht vorhanden. Der Eigentümer einer CDB_-Ansicht ist der Eigentümer der entsprechenden DBA_-Ansicht. Die folgende Grafik zeigt die Beziehung zwischen den verschiedenen Kategorien von Dictionary Views:
Abbildung 3: Dictionary Views in einer CDB

Beschreibung der Abbildung cncpt_vm_366.png
Wenn der aktuelle Container eine PDB ist, kann ein Benutzer Data Dictionary-Informationen nur für die aktuelle PDB anzeigen. Wenn der aktuelle Container jedoch die CDB-Root ist, kann ein allgemeiner Benutzer CDB_-Views abfragen, um Metadaten für die CDB-Root und für PDBs anzuzeigen, für die dieser Benutzer berechtigt ist. Hinweis: Wenn Sie Daten aus der CDB-Root abfragen, konvertieren die Views CDB_ und V$ Daten implizit in den Zeichensatz AL32UTF8. Wenn ein Zeichensatz mehr Byte benötigt, um ein Zeichen darzustellen, wenn er in AL32UTF8 konvertiert wird, und wenn die Breite der Ansichtsspalte keine Daten aus einer bestimmten PDB aufnehmen kann, ist eine Datenabschneiden möglich.
In der folgenden Tabelle werden Abfragen von CDB_-Views beschrieben. Jede Zeile beschreibt eine Aktion, die nach der Aktion in der vorhergehenden Zeile erfolgt.
Tabelle 3: Abfragen von CDB_-Views
| Arbeitsvorgang | Beschreibung |
|---|---|
|
Der Benutzer |
|
SYSTEM fragt CDB_USERS ab, um die Anzahl der allgemeinen Benutzer in der CDB-Root abzurufen. Die Ausgabe gibt an, dass 38 allgemeine Benutzer in der CDB-Root vorhanden sind. |
|
SYSTEM fragt CDB_USERS ab, um die Anzahl der eindeutigen Container in der CDB zu bestimmen. |
|
Der Benutzer SYSTEM stellt jetzt eine Verbindung zur PDB namens hrpdb her. |
|
SYSTEM fragt CDB_USERS ab. Die Ausgabe gibt an, dass 48 allgemeine und lokale Benutzer im aktuellen Container (hrpdb) vorhanden sind. |
|
SYSTEM fragt DBA_USERS ab. Die Ausgabe entspricht der vorherigen Abfrage. Da SYSTEM nicht mit dem CDB-Root verbunden ist, zeigt die DBA_USERS-Ansicht dieselbe Ausgabe wie CDB_USERS an. Da DBA_USERS nur die Benutzer im aktuellen Container anzeigt, wird 48 angezeigt. |
Ansichten mit dem Präfix DBA_
Views mit dem Präfix DBA_ zeigen alle relevanten Informationen in der gesamten Datenbank an. Die DBA_-View ist nur für Administratoren gedacht.
In der folgenden Beispielabfrage werden Informationen zu allen Objekten in der Datenbank angezeigt:
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM DBA_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
Siehe auch: Oracle AI Database Administrator's Guide für detaillierte Informationen zu administrativen Berechtigungen
Ansichten mit dem Präfix ALL_
Views mit dem Präfix ALL_ beziehen sich auf die Gesamtperspektive des Benutzers der Datenbank.
Diese Views geben Informationen zu Schemaobjekten zurück, auf die der Benutzer über öffentliche oder explizite Berechtigungen und Rollen sowie über Schemaobjekte zugreifen kann, deren Eigentümer der Benutzer ist.
Beispiel: Die folgende Abfrage gibt Informationen zu allen Objekten zurück, auf die Sie Zugriff haben:
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM ALL_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
Da die ALL_-Views der aktuellen Gruppe aktivierter Rollen entsprechen, hängen die Abfrageergebnisse davon ab, welche Rollen aktiviert sind, wie im folgenden Beispiel dargestellt:
SQL> SET ROLE ALL;
Role set.
SQL> SELECT COUNT(*) FROM ALL_OBJECTS;
COUNT(*)
----------
68295
SQL> SET ROLE NONE;
Role set.
SQL> SELECT COUNT(*) FROM ALL_OBJECTS;
COUNT(*)
----------
53771
Anwendungsentwickler sollten die Auswirkungen von Rollen erkennen, wenn sie ALL_-Ansichten in einer gespeicherten Prozedur verwenden, in der Rollen standardmäßig nicht aktiviert sind.
Ansichten mit dem Präfix USER_
Die Views, die für typische Datenbankbenutzer am ehesten von Interesse sind, sind die Views mit dem Präfix USER_.
Diese Ansichten:
-
Informationen zur privaten Umgebung des Benutzers in der Datenbank, einschließlich Metadaten zu Schemaobjekten, die vom Benutzer erstellt wurden, Berechtigungen, die vom Benutzer erteilt wurden usw.
-
Nur Zeilen anzeigen, die für den Benutzer relevant sind, wobei eine Teilmenge der Informationen in den
ALL_-Views zurückgegeben wird -
Hat Spalten, die mit den anderen Ansichten identisch sind, mit der Ausnahme, dass die Spalte
OWNERimpliziert ist -
Kann aus Gründen der Benutzerfreundlichkeit abgekürzte
PUBLIC-Synonyme haben
Beispiel: Die folgende Abfrage gibt alle in Ihrem Schema enthaltenen Objekte zurück:
SELECT OBJECT_NAME, OBJECT_TYPE
FROM USER_OBJECTS
ORDER BY OBJECT_NAME;
Die DUAL-Tabelle
DUAL ist eine kleine Tabelle im Data Dictionary, auf die Oracle AI Database und vom Benutzer geschriebene Programme verweisen können, um ein bekanntes Ergebnis zu gewährleisten.
Die doppelte Tabelle ist nützlich, wenn ein Wert nur einmal zurückgegeben werden muss, z.B. das aktuelle Datum und die aktuelle Uhrzeit. Alle Datenbankbenutzer haben Zugriff auf DUAL.
Die Tabelle DUAL enthält eine Spalte mit dem Namen DUMMY und eine Zeile mit dem Wert X. Das folgende Beispiel fragt DUAL ab, um einen arithmetischen Vorgang auszuführen:
SQL> SELECT ((3*4)+5)/3 FROM DUAL;
((3*4)+5)/3
-----------
5.66666667
Siehe auch: Oracle AI Database SQL Language Reference für weitere Informationen zur Tabelle DUAL
Funktionsweise des Data Dictionarys
Der Oracle AI Database-Benutzeraccount SYS ist Eigentümer aller Basistabellen und für den Benutzer zugänglichen Views des Data Dictionarys.
Während des Datenbankvorgangs liest Oracle AI Database das Data Dictionary, um sicherzustellen, dass Schemaobjekte vorhanden sind und Benutzer den richtigen Zugriff darauf haben. Oracle AI Database aktualisiert das Data Dictionary kontinuierlich, um Änderungen in Datenbankstrukturen, Auditing, Berechtigungen und Daten widerzuspiegeln.
Beispiel: Wenn Benutzer hr eine Tabelle mit dem Namen interns erstellt, fügt die Datenbank dem Data Dictionary neue Zeilen hinzu, die die neue Tabelle, die neuen Spalten, das neue Segment, die Extents und die Berechtigungen von hr für die Tabelle widerspiegeln. Diese neuen Informationen werden angezeigt, wenn die Dictionary Views das nächste Mal abgefragt werden.
Daten in den Basistabellen des Data Dictionarys sind erforderlich, damit Oracle AI Database funktioniert. Nur Oracle AI Database darf Data Dictionary-Informationen schreiben oder ändern. Kein Oracle AI Database-Benutzer darf niemals Zeilen oder Schemaobjekte ändern, die in dem Schema SYS enthalten sind, weil dadurch eine Störung der Datenintegrität auftreten kann. Der Sicherheitsadministrator muss strikte Kontrolle über diesen zentralen Account bewahren.
Warnung: Das Ändern oder Bearbeiten der Daten in Data Dictionary-Tabellen kann sich dauerhaft und nachteilig auf den Datenbankbetrieb auswirken.
-
Metadaten und Datenlinks Die CDB verwendet einen internen Verknüpfungsmechanismus, um Data Dictionary-Informationen zu trennen.
-
Öffentliche Synonyme für Data Dictionary Views Oracle AI Database erstellt öffentliche Synonyme für viele Data Dictionary Views, damit Benutzer bequem darauf zugreifen können.
-
Data Dictionary-Cache Ein Großteil der Data Dictionary-Informationen befindet sich im Data Dictionary-Cache, da die Datenbank ständig die Informationen benötigt, um den Benutzerzugriff zu validieren und den Status von Schemaobjekten zu prüfen.
-
Andere Programme und das Data Dictionary Andere Oracle AI Database-Produkte können vorhandene Views referenzieren und zusätzliche Data Dictionary-Tabellen oder -Views erstellen. Siehe auch: "SYS- und SYSTEM-Accounts"
Metadaten und Datenlinks
Die CDB verwendet einen internen Verknüpfungsmechanismus, um Data Dictionary-Informationen zu trennen.
Insbesondere verwendet Oracle AI Database die folgenden automatisch verwalteten Zeiger:
-
Metadatenlinks
Oracle AI Database speichert Metadaten zu Dictionary-Objekten nur in der CDB-Root. Beispiel: Die Spaltendefinitionen für die Dictionary-Tabelle
OBJ$, die der Data Dictionary-ViewDBA_OBJECTSzugrunde liegt, sind nur in der CDB-Root vorhanden. Wie in Abbildung 9-2 dargestellt, verwendet die TabelleOBJ$in jeder PDB einen internen Mechanismus, der als Metadatenlink bezeichnet wird, um auf die Definition vonOBJ$zu verweisen, die in der CDB-Root gespeichert ist.Die Daten, die einem Metadatenlink entsprechen, befinden sich in seiner PDB, nicht in der CDB-Root. Beispiel: Wenn Sie Tabelle
mytableinhrpdberstellen und Zeilen hinzufügen, werden die Zeilen in den PDB-Datendateien gespeichert, nicht in den CDB-Root-Datendateien.Die Data Dictionary Views in der PDB und in der CDB-Root enthalten verschiedene Zeilen. Beispiel: Eine neue Zeile mit der Beschreibung
mytableist in der TabelleOBJ$inhrpdbvorhanden, nicht jedoch in der TabelleOBJ$in der CDB-Root. Daher zeigt eine Abfrage vonDBA_OBJECTSin der CDB-Root undDBA_OBJECTSinhrdpbverschiedene Ergebnisse an. -
Datenlinks
Hinweis: Datenlinks wurden in Oracle Database 12c Release 1 (12.1.0.2) als Objektlinks bezeichnet.
In einigen Fällen speichert Oracle AI Database die Daten (nicht nur Metadaten) für ein Objekt nur einmal im Anwendungs-Root eines Anwendungscontainers. Betrachten Sie ein E-Commerce-Unternehmen, das verschiedene PDBs für verschiedene Regionen hat. Die Anwendungs-Root kann eine Tabelle mit dem Namen
postal_codesspeichern, in der alle US-Postleitzahlen aufgeführt sind. Jede Anwendungs-PDB in diesem Container erfordert Zugriff auf die gemeinsamepostal_codes-Tabelle.Eine Anwendungs-PDB verwendet einen internen Mechanismus, der als Datenlink bezeichnet wird, um das Objekt in der Anwendungs-Root zu referenzieren. Die Anwendungs-PDB, in der der Datenlink erstellt wurde, speichert auch die Datenlinkbeschreibung. Ein Datenlink erbt den Datentyp des Objekts, auf das er sich bezieht.
-
Erweiterter Datenlink
Ein erweiterter Datenlink ist eine Mischung aus einem Datenlink und einem Metadatenlink. Wie ein Datenlink bezieht sich ein erweiterter Datenlink auf ein Objekt in einem Anwendungs-Root. Der erweiterte Datenlink bezieht sich jedoch auch auf ein entsprechendes Objekt in der Anwendungs-PDB. Beispiel: Eine Anwendungs-PDB verfügt über eine erweiterte Datenlinktabelle, in der sowohl Postleitzahlen für die USA als auch Postleitzahlen für Kanada gespeichert sind. Wie ein Metadatenlink erbt das Objekt in der Anwendungs-PDB Metadaten aus dem entsprechenden Objekt in der Anwendungs-Root.
Bei einer Abfrage im Anwendungs-Root ruft eine erweiterte datenverknüpfte Tabelle nur Zeilen aus dem Anwendungs-Root ab, z.B. nur US-Postleitzahlen. Bei einer Abfrage in einer Anwendungs-PDB ruft eine erweiterte datenverknüpfte Tabelle jedoch Zeilen aus der Anwendungs-Root und der Anwendungs-PDB ab, z.B. US-Postleitzahlen und kanadische Postleitzahlen.
Oracle AI Database erstellt und verwaltet automatisch Metadaten- und Datenlinks zu CDB$ROOT. Benutzer können diese Links nicht hinzufügen, ändern oder entfernen.
Siehe:
-
Oracle AI Database Concepts für einen Überblick über das Data Dictionary
Öffentliche Synonyme für Data Dictionary Views
Oracle AI Database erstellt öffentliche Synonyme für viele Data Dictionary Views, damit Benutzer bequem darauf zugreifen können.
Der Sicherheitsadministrator kann auch zusätzliche öffentliche Synonyme für Schemaobjekte erstellen, die systemweit verwendet werden. Oracle empfiehlt, denselben Namen für ein privates Schemaobjekt und ein öffentliches Synonym zu verwenden.
Siehe auch: "Synonyme - Überblick"
Data-Dictionary-Cache
Ein Großteil der Data Dictionary-Informationen befindet sich im Data Dictionary-Cache, da die Datenbank ständig die Informationen benötigt, um den Benutzerzugriff zu validieren und den Status von Schemaobjekten zu prüfen.
Die Caches enthalten in der Regel die Parsing-Informationen. Die COMMENTS-Spalten, die die Tabellen und ihre Spalten beschreiben, werden nicht im Dictionary-Cache gecacht, sondern können im Datenbankpuffercache gecacht werden.
Siehe auch: "Data Dictionary-Cache"
Andere Programme und das Data Dictionary
Andere Oracle AI Database-Produkte können vorhandene Views referenzieren und zusätzliche Data Dictionary-Tabellen oder -Views erstellen.
Oracle empfiehlt, dass Anwendungsentwickler, die Programme schreiben, die auf das Data Dictionary verweisen, die öffentlichen Synonyme anstelle der zugrunde liegenden Tabellen verwenden. Synonyme ändern sich seltener zwischen Releases.
Data Dictionary-Speicher
Das Data Dictionary, in dem die Metadaten für die CDB als Ganzes gespeichert werden, wird nur in den System-Tablespaces gespeichert.
Das Data Dictionary, in dem die Metadaten für eine bestimmte PDB gespeichert werden, wird in den eigenständigen Tablespaces gespeichert, die für diese PDB dediziert sind. Die PDB-Tablespaces enthalten sowohl die Daten als auch die Metadaten für ein Anwendungs-Backend. Daher wird jede Gruppe von Data Dictionary-Tabellen in einer eigenen dedizierten Gruppe von Tablespaces gespeichert.
Siehe auch: "Der SYSTEM-Tablespace" für weitere Informationen zum SYSTEM Tablespace
Überblick über dynamische Performanceansichten
Während des gesamten Betriebs verwaltet Oracle AI Database eine Reihe virtueller Tabellen, die aktuelle Datenbankaktivitäten aufzeichnen.
Diese Views sind dynamisch, da sie kontinuierlich aktualisiert werden, während eine Datenbank geöffnet ist und verwendet wird. Die Ansichten werden manchmal als V$-Ansichten bezeichnet, da ihre Namen mit V$ beginnen.
Dynamische Performance-Views enthalten Informationen wie die folgenden:
-
System- und Session-Parameter
-
Speicherauslastung und -zuweisung
-
Dateistatus (einschließlich RMAN-Backupdateien)
-
Fortschritt von Jobs und Aufgaben
-
SQL-Ausführung
-
Statistiken und Metriken
Die dynamischen Performance-Views haben die folgenden primären Verwendungen:
-
Oracle Enterprise Manager verwendet die Views, um Informationen zur Datenbank abzurufen.
-
Administratoren können die Views für Performanceüberwachung und Debugging verwenden.
-
Inhalt der dynamischen Performanceansichten Dynamische Performanceansichten werden als feste Ansichten bezeichnet, da sie von einem Datenbankadministrator nicht geändert oder entfernt werden können. Datenbankadministratoren können jedoch Views für die Tabellen abfragen und erstellen und anderen Benutzern Zugriff auf diese Views erteilen.
-
Speicher der dynamischen Performance-Views Dynamische Performance-Views basieren auf virtuellen Tabellen, die aus Datenbankspeicherstrukturen erstellt wurden. Siehe auch: In der Oracle AI Database-Referenz finden Sie eine vollständige Liste der dynamischen Performanceansichten.
Inhalt der dynamischen Performance-Views
Dynamische Performance-Views werden als feste Views bezeichnet, da sie von einem Datenbankadministrator nicht geändert oder entfernt werden können. Datenbankadministratoren können jedoch Views für die Tabellen abfragen und erstellen und anderen Benutzern Zugriff auf diese Views erteilen.
SYS ist Eigentümer der dynamischen Performancetabellen, deren Namen mit V_$ beginnen. Views werden für diese Tabellen erstellt, und dann öffentliche Synonyme mit dem Präfix V$. Beispiel: Die Ansicht V$DATAFILE enthält Informationen zu Datendateien. Die Ansicht V$FIXED_TABLE enthält Informationen zu allen dynamischen Performancetabellen und -ansichten.
Für fast jede V$-Ansicht ist eine entsprechende GV$-Ansicht vorhanden. Wenn Sie in Oracle Real Application Clusters (Oracle RAC) eine GV$-View abfragen, werden die V$-View-Informationen aus allen qualifizierten Datenbankinstanzen abgerufen.
Wenn Sie eine Datenbank mit Database Configuration Assistant (DBCA) erstellen, erstellt Oracle automatisch das Data Dictionary. Oracle AI Database führt automatisch das Skript catalog.sql aus, das Definitionen der Ansichten und öffentlichen Synonyme für die dynamischen Performance-Views enthält. Sie müssen catalog.sql ausführen, um diese Ansichten und Synonyme zu erstellen.
Siehe:
-
Oracle AI Database Administrator's Guide, um zu erfahren, wie Sie
catalog.sqlmanuell ausführen -
Oracle Real Application Clusters Administration and Deployment Guide enthält Informationen zur Verwendung von Performanceansichten in Oracle RAC
Speicherung der dynamischen Performance-Views
Dynamische Performance-Views basieren auf virtuellen Tabellen, die aus Datenbankspeicherstrukturen erstellt wurden.
Die Views sind keine herkömmlichen Tabellen, die in der Datenbank gespeichert sind. Die Lesekonsistenz ist für die Views nicht gewährleistet, da die Daten dynamisch aktualisiert werden.
Da die dynamischen Performance-Views keine echten Tabellen sind, hängen die Daten vom Status der Datenbank und der Datenbankinstanz ab. Beispiel: Sie können V$INSTANCE und V$BGPROCESS abfragen, wenn die Datenbank gestartet, aber nicht gemountet wird. Sie können V$DATAFILE jedoch erst abfragen, wenn die Datenbank gemountet wurde.
Siehe auch: "Nebenläufigkeit und Konsistenz von Daten"
Datenbankobjektmetadaten
Das Package DBMS_METADATA und die Funktion DBMS_DEVELOPER.GET_METADATA stellen Schnittstellen zum Extrahieren vollständiger Definitionen von Datenbankobjekten bereit.
Mit dem Package DBMS_METADATA können die Definitionen entweder als XML oder als SQL-DDL ausgedrückt werden. Oracle AI Database bietet zwei Arten von Schnittstellen: eine flexible, ausgefeilte Schnittstelle für programmatische Steuerung und eine vereinfachte Schnittstelle für Ad-hoc-Abfragen.
Mit der Funktion DBMS_DEVELOPER.GET_METADATA werden die Objektmetadaten als JSON-Dokument zurückgegeben.
Siehe auch: Oracle AI Database PL/SQL Packages and Types Reference für weitere Informationen zu DBMS_METADATA. Oracle AI Database PL/SQL Packages and Types Reference für weitere Informationen zu DBMS_DEVELOPER.GET_METADATA.