Dizionario dati e viste prestazioni dinamiche
Il set centrale di tabelle e viste di riferimento di sola lettura di ciascun database Oracle è noto collettivamente come dizionario dati. Le viste delle prestazioni dinamiche sono viste speciali che vengono aggiornate continuamente mentre un database è aperto e in uso.
-
Panoramica del dizionario dati Una parte importante di un database Oracle è il dizionario dati, che è un set di tabelle di sola lettura che fornisce metadati amministrativi sul database.
-
Panoramica delle viste delle prestazioni dinamiche Durante il funzionamento, Oracle AI Database gestisce un set di tabelle virtuali che registrano l'attività corrente del database.
-
Metadati oggetto database Il package
DBMS_METADATAe la funzioneDBMS_DEVELOPER.GET_METADATAforniscono interfacce per l'estrazione di definizioni complete di oggetti di database.
Panoramica del dizionario dati
Una parte importante di un database Oracle è il dizionario dati, che è un set di tabelle di sola lettura che fornisce metadati amministrativi sul database.
-
Scopo del dizionario dati Il dizionario dati contiene metadati che descrivono il contenuto del database.
-
Componenti del dizionario dati Il dizionario dati è costituito da tabelle e viste di base.
-
Funzionamento del dizionario dati L'account utente
SYSdi Oracle AI Database è proprietario di tutte le tabelle di base e di tutte le viste accessibili dall'utente del dizionario dati. -
Memorizzazione del dizionario dati Il dizionario dati che memorizza i metadati per il CDB nel suo complesso viene memorizzato solo nelle tablespace del sistema.
Scopo del dizionario dati
Il dizionario dati contiene metadati che descrivono il contenuto del database.
Ad esempio, il dizionario dati contiene informazioni quali:
-
Le definizioni di ogni oggetto schema nel database, inclusi i valori predefiniti per le colonne e le informazioni sui vincoli di integrità.
-
La quantità di spazio allocato e utilizzato attualmente dagli oggetti dello schema.
-
I nomi degli utenti, dei privilegi e dei ruoli di Oracle AI Database concessi agli utenti e le informazioni di audit correlate agli utenti
-
Gestione dati Il dizionario dati è una parte centrale della gestione dei dati per ogni database Oracle.
-
Separazione del dizionario dati in un CDB In un CDB, i metadati del dizionario dati vengono suddivisi tra la radice del CDB e i PDB. Dal punto di vista dell'utente e dell'applicazione, il dizionario dati in ciascun contenitore in un CDB è separato.
Gestione dati
Il dizionario dati è una parte centrale della gestione dei dati per ogni database Oracle.
Ad esempio, il database esegue le azioni riportate di seguito.
-
Consente di accedere al dizionario dati per trovare informazioni su utenti, oggetti schema e strutture di memorizzazione
-
Modifica il dizionario dati ogni volta che viene emessa un'istruzione DDL
Poiché Oracle AI Database memorizza i dati del dizionario dati in tabelle, proprio come altri dati, gli utenti possono eseguire una query sui dati con SQL. Ad esempio, gli utenti possono eseguire istruzioni SELECT per determinare i loro privilegi, quali tabelle esistono nel loro schema, quali colonne sono in queste tabelle, se gli indici sono costruiti su queste colonne e così via.
Vedere anche:
-
Oracle AI Database Security Guide per informazioni sugli account utente
Separazione del dizionario dati in un CDB
In un CDB, i metadati del dizionario dati vengono suddivisi tra la radice del CDB e i PDB. Dal punto di vista dell'utente e dell'applicazione, il dizionario dati in ciascun contenitore in un CDB è separato.
In un CDB appena creato che non contiene ancora dati utente, il dizionario dati nella radice CDB contiene solo metadati di sistema. Ad esempio, la tabella TAB$ contiene righe che descrivono solo le tabelle fornite da Oracle, ad esempio TRIGGER$ e SERVICE$. Il grafico seguente mostra tre tabelle del dizionario dati sottostanti, con le barre rosse che indicano le righe che descrivono il sistema.
Figura 1: Metadati del dizionario dati nella radice CDB

Descrizione dell'immagine cncpt_vm_363.png
Si supponga di creare un PDB, quindi di creare uno schema hr contenente le tabelle employees e departments in questo PDB. Il dizionario dati nel PDB contiene alcune righe che descrivono le entità fornite da Oracle e altre righe che descrivono le entità create dall'utente. Ad esempio, la tabella TAB$ nel dizionario PDB contiene una riga di metadati per la tabella employees e una riga per la tabella departments.
Figura 2: Architettura del dizionario dati in un CDB

Descrizione dell'illustrazione cncpt_vm_361.png
L'immagine precedente mostra che il dizionario dati nel PDB contiene puntatori per il dizionario dati nella radice CDB. Gli oggetti forniti da Oracle, ad esempio le definizioni delle tabelle del dizionario dati e i package PL/SQL, vengono rappresentati solo una volta nella radice del CDB. Questa architettura raggiunge due obiettivi principali all'interno del CDB:
-
Riduzione della duplicazione
Ad esempio, invece di memorizzare il codice sorgente per il package PL/SQL
DBMS_ADVISORin ogni PDB, il CDB memorizza il codice una sola volta inCDB$ROOT, risparmiando spazio su disco. -
Facilità di aggiornamento del database
Se la definizione di una tabella del dizionario dati esisteva in ogni PDB e se la definizione dovesse cambiare in una nuova release, ogni PDB dovrebbe essere aggiornato separatamente per acquisire la modifica. La memorizzazione della definizione della tabella solo una volta nella radice CDB elimina questo problema.
Componenti dizionario dati
Il dizionario dati è costituito da tabelle e viste di base.
Gli oggetti vengono definiti come segue:
-
Tabelle di base
Queste informazioni memorizzano il database. Solo Oracle AI Database deve scrivere e leggere queste tabelle. Gli utenti raramente accedono alle tabelle di base direttamente perché sono normalizzati e la maggior parte dei dati viene memorizzata in un formato criptico.
-
Viste
Questi decodificano i dati della tabella di base in informazioni utili, ad esempio nomi utente o tabella, utilizzando join e clausole
WHEREper semplificare le informazioni. Le viste contengono i nomi e la descrizione di tutti gli oggetti nel dizionario dati. Alcune viste sono accessibili a tutti gli utenti del database, mentre altre sono destinate solo agli amministratori.
In genere, le viste del dizionario dati sono raggruppate in set. In molti casi, un set è costituito da tre viste contenenti informazioni simili e distinte l'una dall'altra per i prefissi, come mostrato nella tabella seguente. Interrogando le viste appropriate, è possibile accedere solo alle informazioni rilevanti per l'utente.
Tabella 1 - Serie di viste dizionario dati
| Prefisso | Accesso utente | Contenuti | Note |
|---|---|---|---|
DBA_ |
Amministratori del database | Tutti gli elementi | Alcune viste DBA_ dispongono di colonne aggiuntive contenenti informazioni utili per l'amministratore. |
ALL_ |
Tutti gli utenti | Oggetti per i quali l'utente dispone dei privilegi | Include gli oggetti di proprietà dell'utente. Queste viste obbediscono al set corrente di ruoli abilitati. |
USER_ |
Tutti gli utenti | Oggetti di proprietà dell'utente | Le viste con il prefisso USER_ in genere escludono la colonna OWNER. Questa colonna è implicita nelle viste USER_ come utente che invia la query. |
Non tutti i set di viste hanno tre membri. Ad esempio, il dizionario dati contiene una vista DBA_LOCK, ma non una vista ALL_LOCK.
La vista DICTIONARY fornita dal sistema contiene i nomi e le descrizioni abbreviate di tutte le viste del dizionario dati. La seguente query di questa vista include output di esempio parziale:
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
.
.
.
-
Oggetti dati del contenitore in un CDB Un oggetto dati del contenitore è una tabella o una vista contenente dati relativi a più contenitori o all'intero CDB.
-
Le viste con prefisso DBA_ con prefisso
DBA_mostrano tutte le informazioni pertinenti nell'intero database. Le visteDBA_sono riservate agli amministratori. -
Views with the Prefix ALL_ Views with the prefix
ALL_refer to the user’s overall perspective of the database. -
Viste con il prefisso USER_ Le viste che più probabilmente interessano gli utenti di database standard sono quelle con il prefisso
USER_. -
La tabella DUAL
DUALè una piccola tabella nel dizionario dati a cui Oracle AI Database e i programmi scritti dall'utente possono fare riferimento per garantire un risultato noto.
Vedere anche:
-
Oracle AI Database Reference per una lista completa delle viste del dizionario dati e delle relative colonne
Oggetti dati contenitore in un CDB
Un oggetto dati del contenitore è una tabella o una vista contenente dati relativi a più contenitori o all'intero CDB.
I privilegi dei dati del contenitore supportano un requisito generale in cui più PDB risiedono in un singolo CDB, ma con requisiti di amministrazione locali diversi. Ad esempio, se i DBA delle applicazioni non desiderano amministrare localmente, possono concedere privilegi sui dati dei container su viste appropriate agli utenti comuni. In questo caso, l'amministratore del CDB può accedere ai dati per questi PDB. Al contrario, gli amministratori del PDB che non desiderano che l'amministratore del CDB acceda ai propri dati non concedono i privilegi dei dati del contenitore.
Esempi di oggetti dati contenitore sono viste fornite da Oracle i cui nomi iniziano con V$ e CDB_. Tutti gli oggetti dati contenitore hanno una colonna CON_ID. La tabella seguente mostra il significato dei valori per questa colonna.
Valori ID container tabella 2
| ID contenitore | Le righe si riferiscono a |
|---|---|
0 |
CDB intero |
1 |
CDB$ROOT |
2 |
PDB$SEED |
| Tutti gli altri ID | PDB creati dall'utente, radici delle applicazioni o seed dell'applicazione |
In un CDB, per ogni vista DBA_, esiste una vista CDB_ corrispondente. Il proprietario di una vista CDB_ è il proprietario della vista DBA_ corrispondente. Il grafico seguente mostra la relazione tra le diverse categorie di viste dizionario:
Figura 3: Viste del dizionario in un CDB

Descrizione dell'immagine cncpt_vm_366.png
Quando il contenitore corrente è un PDB, un utente può visualizzare le informazioni del dizionario dati solo per il PDB corrente. Quando il contenitore corrente è la radice CDB, tuttavia, un utente comune può eseguire una query sulle viste CDB_ per visualizzare i metadati per la radice CDB e per i PDB per i quali questo utente dispone di privilegi. Nota: quando viene eseguita una query dalla radice CDB, le viste CDB_ e V$ convertono in modo implicito i dati nel set di caratteri AL32UTF8. Se un set di caratteri richiede più byte per rappresentare un carattere quando viene convertito in AL32UTF8 e se la larghezza della colonna della vista non può contenere i dati di un PDB specifico, è possibile troncare i dati.
Nella tabella seguente vengono descritte le query delle viste CDB_. Ogni riga descrive un'azione che si verifica dopo l'azione nella riga precedente.
Tabella 3 Esecuzione di query sulle viste CDB_
| Operazione | Descrizione |
|---|---|
|
L'utente |
|
SYSTEM esegue una query su CDB_USERS per ottenere il numero di utenti comuni nella root del CDB. L'output indica che 38 utenti comuni sono presenti nella directory root dei CDB. |
|
SYSTEM esegue una query su CDB_USERS per determinare il numero di contenitori distinti nel CDB. |
|
L'utente SYSTEM ora si connette al PDB denominato hrpdb. |
|
SYSTEM interroga CDB_USERS. L'output indica che nel contenitore corrente esistono 48 utenti comuni e locali, ovvero hrpdb. |
|
SYSTEM interroga DBA_USERS. L'output è uguale alla query precedente. Poiché SYSTEM non è connesso al root del CDB, la vista DBA_USERS mostra lo stesso output di CDB_USERS. Poiché DBA_USERS mostra solo gli utenti nel contenitore corrente, ne mostra 48. |
Viste con il prefisso DBA_
Le viste con il prefisso DBA_ mostrano tutte le informazioni rilevanti nell'intero database. Le viste DBA_ sono riservate agli amministratori.
La seguente query di esempio mostra informazioni su tutti gli oggetti nel database:
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM DBA_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
Vedere anche: Oracle AI Database Administrator's Guide per informazioni dettagliate sui privilegi amministrativi
Viste con il prefisso ALL_
Le viste con il prefisso ALL_ fanno riferimento alla prospettiva complessiva dell'utente del database.
Queste viste restituiscono informazioni sugli oggetti dello schema a cui l'utente ha accesso tramite privilegi pubblici o espliciti di privilegi e ruoli, oltre agli oggetti dello schema di proprietà dell'utente.
Ad esempio, la seguente query restituisce informazioni su tutti gli oggetti a cui si ha accesso:
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM ALL_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
Poiché le viste ALL_ obbediscono al set corrente di ruoli abilitati, i risultati delle query dipendono dai ruoli abilitati, come mostrato nell'esempio riportato di seguito.
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
Gli sviluppatori di applicazioni devono essere consapevoli dell'effetto dei ruoli quando utilizzano le viste ALL_ in una procedura memorizzata, in cui i ruoli non sono abilitati per impostazione predefinita.
Viste con il prefisso USER_
Le viste che più probabilmente interessano gli utenti di database standard sono quelle con il prefisso USER_.
Queste viste:
-
Fare riferimento all'ambiente privato dell'utente nel database, inclusi i metadati sugli oggetti dello schema creati dall'utente, le autorizzazioni concesse dall'utente e così via
-
Visualizza solo le righe pertinenti all'utente, restituendo un subset delle informazioni nelle viste
ALL_ -
Ha colonne identiche alle altre viste, ad eccezione del fatto che la colonna
OWNERè implicita -
Può avere abbreviato i sinonimi
PUBLICper comodità
Ad esempio, la query seguente restituisce tutti gli oggetti contenuti nello schema:
SELECT OBJECT_NAME, OBJECT_TYPE
FROM USER_OBJECTS
ORDER BY OBJECT_NAME;
Il tavolo DUAL
DUAL è una piccola tabella nel dizionario dati a cui Oracle AI Database e i programmi scritti dall'utente possono fare riferimento per garantire un risultato noto.
La tabella doppia è utile quando un valore deve essere restituito una sola volta, ad esempio la data e l'ora correnti. Tutti gli utenti del database hanno accesso a DUAL.
La tabella DUAL contiene una colonna denominata DUMMY e una riga contenente il valore X. Nell'esempio seguente viene eseguita una query su DUAL per eseguire un'operazione aritmetica.
SQL> SELECT ((3*4)+5)/3 FROM DUAL;
((3*4)+5)/3
-----------
5.66666667
Per ulteriori informazioni sulla tabella DUAL, vedere anche: Oracle AI Database SQL Language Reference
Funzionamento del dizionario dati
L'account utente SYS di Oracle AI Database è proprietario di tutte le tabelle di base e di tutte le viste accessibili dall'utente del dizionario dati.
Durante il funzionamento del database, Oracle AI Database legge il dizionario dati per verificare che gli oggetti dello schema esistano e che gli utenti dispongano dell'accesso appropriato. Oracle AI Database aggiorna continuamente il dizionario dati per riflettere i cambiamenti nelle strutture del database, nell'auditing, nelle concessioni e nei dati.
Ad esempio, se l'utente hr crea una tabella denominata interns, il database aggiunge nuove righe al dizionario dati che riflettono la nuova tabella, le nuove colonne, il segmento, le estensioni e i privilegi di cui dispone hr nella tabella. Queste nuove informazioni sono visibili alla successiva interrogazione delle viste del dizionario.
I dati nelle tabelle di base del dizionario dati sono necessari per il funzionamento di Oracle AI Database. Solo Oracle AI Database deve scrivere o modificare le informazioni del dizionario dati. Nessun utente di Oracle AI Database dovrebbe mai modificare righe o oggetti dello schema contenuti nello schema SYS, perché tale attività può compromettere l'integrità dei dati. L'amministratore della sicurezza deve tenere rigorosamente sotto controllo questo account fondamentale.
Avvertenza: la modifica o la manipolazione dei dati nelle tabelle del dizionario dati può influire in modo permanente e negativo sull'operazione del database.
-
Collegamenti metadati e dati Il CDB utilizza un meccanismo di collegamento interno per separare le informazioni del dizionario dati.
-
Sinonimi pubblici per le viste del dizionario dati Oracle AI Database crea sinonimi pubblici per molte viste del dizionario dati in modo che gli utenti possano accedervi comodamente.
-
Cache del dizionario dati Gran parte delle informazioni del dizionario dati si trova nella cache del dizionario dati perché il database richiede costantemente le informazioni per convalidare l'accesso utente e verificare lo stato degli oggetti dello schema.
-
Altri programmi e il dizionario dati Altri prodotti Oracle AI Database possono fare riferimento a viste esistenti e creare tabelle o viste del dizionario dati aggiuntive. Vedere anche: "Account SYS e SYSTEM"
Metadati e collegamenti dati
Il CDB utilizza un meccanismo di collegamento interno per separare le informazioni del dizionario dati.
In particolare, Oracle AI Database utilizza i seguenti puntatori gestiti automaticamente:
-
Collegamenti metadati
Oracle AI Database memorizza i metadati sugli oggetti dizionario solo nella radice CDB. Ad esempio, le definizioni di colonna per la tabella del dizionario
OBJ$, che è alla base della vista del dizionario datiDBA_OBJECTS, esistono solo nella radice CDB. Come illustrato nella Figura 9-2, la tabellaOBJ$in ciascun PDB utilizza un meccanismo interno denominato collegamento ai metadati per puntare alla definizione diOBJ$memorizzata nella radice del CDB.I dati corrispondenti a un collegamento di metadati si trovano nel PDB e non nella radice del CDB. Ad esempio, se si crea la tabella
mytableinhrpdbe si aggiungono righe, le righe vengono memorizzate nei file di dati PDB e non nei file di dati radice CDB.Le viste del dizionario dati nel PDB e nella radice CDB contengono righe diverse. Ad esempio, una nuova riga che descrive
mytableesiste nella tabellaOBJ$inhrpdb, ma non nella tabellaOBJ$nella radice del CDB. Pertanto, una query diDBA_OBJECTSnella radice CDB eDBA_OBJECTSinhrdpbmostra risultati diversi. -
Collegamento dati
Nota: i collegamenti dati sono stati denominati collegamenti agli oggetti in Oracle Database 12c Release 1 (12.1.0.2).
In alcuni casi, Oracle AI Database memorizza i dati (non solo i metadati) per un oggetto solo una volta nella radice dell'applicazione di un contenitore dell'applicazione. Si consideri un'azienda di e-commerce con PDB diversi per aree diverse. La radice dell'applicazione potrebbe memorizzare una tabella denominata
postal_codes, in cui sono elencati tutti i CAP degli Stati Uniti. Ogni PDB dell'applicazione in questo contenitore richiede l'accesso alla tabellapostal_codescomune.Un PDB applicazione utilizza un meccanismo interno denominato collegamento dati per fare riferimento all'oggetto nella radice dell'applicazione. Il PDB dell'applicazione in cui è stato creato il collegamento dati memorizza anche la descrizione del collegamento dati. Un collegamento dati eredita il tipo di dati dell'oggetto a cui fa riferimento.
-
Collegamento dati esteso
Un collegamento dati esteso è un ibrido di un collegamento dati e di un collegamento metadati. Come un collegamento dati, un collegamento dati esteso fa riferimento a un oggetto in una radice applicazione. Tuttavia, il collegamento dati esteso fa riferimento anche a un oggetto corrispondente nel PDB dell'applicazione. Ad esempio, un PDB dell'applicazione potrebbe avere una tabella di collegamento dati estesa in cui sono memorizzati sia i CAP degli Stati Uniti che i codici postali canadesi. Come un collegamento di metadati, l'oggetto nel PDB dell'applicazione eredita i metadati dall'oggetto corrispondente nella radice dell'applicazione.
Quando viene eseguita una query nella radice dell'applicazione, una tabella estesa collegata ai dati recupera le righe solo dalla radice dell'applicazione, ad esempio solo i CAP degli Stati Uniti. Tuttavia, quando viene eseguita una query in un PDB dell'applicazione, una tabella estesa collegata ai dati recupera le righe sia dalla radice dell'applicazione che dal PDB dell'applicazione, ad esempio i CAP degli Stati Uniti e i codici postali canadesi.
Oracle AI Database crea e gestisce automaticamente i collegamenti di metadati e dati a CDB$ROOT. Gli utenti non possono aggiungere, modificare o rimuovere questi collegamenti.
Vedere anche:
-
Concetti di Oracle AI Database per una panoramica del dizionario dati
Sinonimi pubblici per le viste del dizionario dati
Oracle AI Database crea sinonimi pubblici per molte viste del dizionario dati in modo che gli utenti possano accedervi comodamente.
L'amministratore della sicurezza può anche creare sinonimi pubblici aggiuntivi per gli oggetti dello schema utilizzati a livello di sistema. Oracle sconsiglia di utilizzare lo stesso nome per un oggetto schema privato e un sinonimo pubblico.
Vedere anche: "Panoramica dei sinonimi"
Cache dizionario dati
La maggior parte delle informazioni del dizionario dati si trova nella cache del dizionario dati perché il database richiede costantemente le informazioni per convalidare l'accesso degli utenti e verificare lo stato degli oggetti dello schema.
Le cache in genere contengono le informazioni di analisi. Le colonne COMMENTS che descrivono le tabelle e le relative colonne non vengono inserite nella cache del dizionario, ma possono essere inserite nella cache nella cache del buffer del database.
Vedere anche: "Data Dictionary Cache"
Altri programmi e dizionario dati
Altri prodotti Oracle AI Database possono fare riferimento a viste esistenti e creare tabelle o viste del dizionario dati aggiuntive proprie.
Oracle consiglia agli sviluppatori di applicazioni che scrivono programmi riferiti al dizionario dati di utilizzare i sinonimi pubblici anziché le tabelle sottostanti. I sinonimi hanno meno probabilità di cambiare tra le versioni.
Archiviazione dizionario dati
Il dizionario dati che memorizza i metadati per il CDB nel suo complesso viene memorizzato solo nelle tablespace del sistema.
Il dizionario dati che memorizza i metadati per un PDB specifico viene memorizzato nelle tablespace autonome dedicate a questo PDB. Le tablespace PDB contengono sia i dati che i metadati per il backend di un'applicazione. Pertanto, ogni set di tabelle del dizionario dati viene memorizzato nel proprio set dedicato di tablespace.
Vedere anche: "The SYSTEM Tablespace" per ulteriori informazioni sulla tablespace SYSTEM
Panoramica delle viste prestazioni dinamiche
Durante il suo funzionamento, Oracle AI Database gestisce un set di tabelle virtuali che registrano l'attività corrente del database.
Queste viste sono dinamiche perché vengono continuamente aggiornate mentre un database è aperto e in uso. Le viste sono talvolta denominate Viste V$ perché i loro nomi iniziano con V$.
Le viste delle prestazioni dinamiche contengono informazioni quali:
-
Parametri di sistema e di sessione
-
Uso e allocazione della memoria
-
Stati dei file (compresi i file di backup RMAN)
-
Avanzamento di job e task
-
Esecuzione SQL
-
Statistiche e metriche
Le viste prestazioni dinamiche utilizzano i seguenti usi principali:
-
Oracle Enterprise Manager utilizza le viste per ottenere informazioni sul database.
-
Gli amministratori possono utilizzare le viste per il monitoraggio e il debug delle prestazioni.
-
I contenuti delle viste prestazioni dinamiche sono denominate viste fisse perché non possono essere modificate o rimosse da un amministratore di database. Tuttavia, gli amministratori del database possono eseguire query e creare viste sulle tabelle e concedere l'accesso a tali viste ad altri utenti.
-
Memorizzazione delle viste prestazioni dinamiche Le viste prestazioni dinamiche si basano su tabelle virtuali create dalle strutture di memoria del database. Vedi anche: Oracle AI Database Reference per un elenco completo delle viste delle prestazioni dinamiche
Contenuto delle viste prestazioni dinamiche
Le viste prestazioni dinamiche sono denominate viste fisse perché non possono essere modificate o rimosse da un amministratore di database. Tuttavia, gli amministratori del database possono eseguire query e creare viste sulle tabelle e concedere l'accesso a tali viste ad altri utenti.
SYS possiede le tabelle delle prestazioni dinamiche, i cui nomi iniziano con V_$. Le viste vengono create su queste tabelle, quindi i sinonimi pubblici preceduti dal prefisso V$. Ad esempio, la vista V$DATAFILE contiene informazioni sui file di dati. La vista V$FIXED_TABLE contiene informazioni su tutte le tabelle e viste delle prestazioni dinamiche.
Per quasi tutte le viste V$, esiste una vista GV$ corrispondente. In Oracle Real Application Clusters (Oracle RAC), l'esecuzione di una query su una vista GV$ recupera le informazioni sulla vista V$ da tutte le istanze di database qualificate.
Quando si utilizza Database Configuration Assistant (DBCA) per creare un database, Oracle crea automaticamente il dizionario dati. Oracle AI Database esegue automaticamente lo script catalog.sql, che contiene le definizioni delle viste e i sinonimi pubblici per le viste delle prestazioni dinamiche. È necessario eseguire catalog.sql per creare queste viste e questi sinonimi.
Vedere anche:
-
Oracle AI Database Administrator's Guide per informazioni su come eseguire
catalog.sqlmanualmente -
Guida all'amministrazione e alla distribuzione di Oracle Real Application Clusters per informazioni sull'uso delle viste delle prestazioni in Oracle RAC
Memorizzazione delle viste prestazioni dinamiche
Le viste delle prestazioni dinamiche si basano su tabelle virtuali create dalle strutture di memoria del database.
Le viste non sono tabelle convenzionali memorizzate nel database. La coerenza della lettura non è garantita per le viste perché i dati vengono aggiornati in modo dinamico.
Poiché le viste delle prestazioni dinamiche non sono tabelle true, i dati dipendono dallo stato del database e dall'istanza del database. Ad esempio, è possibile eseguire una query su V$INSTANCE e V$BGPROCESS quando il database viene avviato ma non attivato. Tuttavia, non è possibile eseguire una query su V$DATAFILE finché il database non è stato attivato.
Vedere anche: "Concorrenza e coerenza dei dati"
Metadati oggetto database
Il pacchetto DBMS_METADATA e la funzione DBMS_DEVELOPER.GET_METADATA forniscono interfacce per l'estrazione di definizioni complete di oggetti di database.
Utilizzando il pacchetto DBMS_METADATA, le definizioni possono essere espresse come XML o come SQL DDL. Oracle AI Database offre due stili di interfaccia: un'interfaccia flessibile e sofisticata per il controllo programmatico e un'interfaccia semplificata per l'esecuzione di query ad hoc.
Utilizzando la funzione DBMS_DEVELOPER.GET_METADATA, i metadati dell'oggetto vengono restituiti come documento JSON.
Per ulteriori informazioni su DBMS_METADATA, vedere anche: Oracle AI Database PL/SQL Packages and Types Reference. Oracle AI Database PL/SQL Packages and Types Reference per ulteriori informazioni su DBMS_DEVELOPER.GET_METADATA.