データ・ディクショナリと動的パフォーマンス・ビュー
各Oracleデータベースの一元的な読取り専用参照表およびビューは、まとめてデータ・ディクショナリと呼ばれます。動的パフォーマンス・ビューは、データベースがオープンされ、使用されている間に継続的に更新される特別なビューです。
-
データ・ディクショナリの概要 Oracleデータベースの重要な部分は、そのデータ・ディクショナリです。このデータ・ディクショナリは、データベースに関する管理メタデータを提供する読取り専用の一連の表です。
-
動的パフォーマンス・ビューの概要Oracle AI Databaseでは、その稼働中であるはずっと、現在のデータベース・アクティビティを記録する一連の仮想表が保持されます。
-
データベース・オブジェクト・メタデータ
DBMS_METADATAパッケージおよびDBMS_DEVELOPER.GET_METADATAファンクションには、データベース・オブジェクトの定義をすべて抽出するためのインタフェースが用意されています。
データ・ディクショナリの概要
データ・ディクショナリはOracle Databaseの重要な部分であり、データベースに関する管理メタデータを提供する読取り専用の表の集合です。
-
データ・ディクショナリの目的データ・ディクショナリには、データベースの内容を記述するメタデータが含まれています。
-
データ・ディクショナリのコンポーネントデータ・ディクショナリは、実表とビューからなります。
-
データ・ディクショナリの仕組み Oracle AI Databaseのユーザー・アカウント
SYSは、データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューを所有しています。 -
データ・ディクショナリの記憶域CDB全体のメタデータを格納するデータ・ディクショナリは、システム表領域にのみ格納されます。
データ・ディクショナリの目的
データ・ディクショナリには、データベースの内容を記述するメタデータが含まれています。
たとえば、データ・ディクショナリには次のような情報が含まれています。
-
列のデフォルト値、整合性制約情報など、データベース内の各スキーマ・オブジェクトの定義
-
スキーマ・オブジェクトに割り当てられている領域、およびスキーマ・オブジェクトによって現在使用されている領域
-
Oracle AI Databaseユーザーの名前、ユーザーに付与された権限とロール、およびユーザーおよびユーザーに関連する監査情報
-
データ管理データ・ディクショナリは、どのOracleデータベースでも、データ管理の中心的な部分です。
-
CDBでのデータ・ディクショナリ分離CDBでは、データ・ディクショナリ・メタデータはCDBルートとPDBの間で分割されます。ユーザーおよびアプリケーションから見ると、CDBの各コンテナのデータ・ディクショナリは、非CDBの場合と同様に分かれています
データ管理
データ・ディクショナリは、すべてのOracle Databaseでデータ管理の中心的な部分となります。
たとえば、データベースでは次のアクションを実行します。
-
ユーザー、スキーマ・オブジェクトおよび記憶域構造に関する情報を検索するために、データ・ディクショナリにアクセスします。
-
DDL文が発行されるたびに、データ・ディクショナリを変更します
Oracle AI Databaseでは、データ・ディクショナリのデータは、他のデータと同様に表に格納されるため、ユーザーはSQLでデータの問合せを実行できます。たとえば、ユーザーは自分の権限、自分のスキーマに存在する表、自分の表に存在する列、これらの列に対して索引が構築されているかどうかなどを判断するために、SELECT文を実行できます。
関連情報:
-
ユーザー・アカウントについて学習するには、Oracle AI Databaseセキュリティ・ガイドを参照してください
CDBでのデータ・ディクショナリの分離
CDBでは、データ・ディクショナリ・メタデータは、CDBルートとPDBの間で分割されています。ユーザーおよびアプリケーションから見ると、CDBの各コンテナのデータ・ディクショナリは分かれています。
ユーザー・データがまだ含まれていない新規に作成されたCDBでは、CDBルートのデータ・ディクショナリにはシステム・メタデータのみが含まれています。たとえば、TAB$表には、Oracle提供の表(TRIGGER$およびSERVICE$など)のみを説明する行が含まれます。次の図は、3つの基礎的なデータ・ディクショナリ表で、赤い棒はシステムを説明する行を示しています。
図1: CDBルートのデータ・ディクショナリ・メタデータ

PDBを作成し、このPDBにemployees表とdepartments表を含むhrスキーマを作成するとします。PDBのデータ・ディクショナリには、Oracle提供のエントリについて記述された行、およびユーザーが作成したエンティティについて記述されたその他の行が含まれています。たとえば、PDBのディクショナリのTAB$表には、employees表のメタデータの行とdepartments表の行があります。
図2: CDBのデータ・ディクショナリ・アーキテクチャ

前の図は、PDBのデータ・ディクショナリに、CDBルートにあるデータ・ディクショナリに対するポインタが含まれていることを示しています。内部では、データ・ディクショナリ表の定義やPL/SQLパッケージなど、Oracleが提供するオブジェクトは、CDBルートでは1回のみ表されます。このアーキテクチャは、CDBで2つの主な目的を達成します。
-
重複の減少
たとえば、すべてのPDBに
DBMS_ADVISORPL/SQLパッケージのソース・コードを格納するかわりに、CDBではCDB$ROOTに1回のみコードが格納され、ディスク領域が節約されます。 -
データベースのアップグレードの容易さ
データ・ディクショナリ表の定義がすべてのPDBに存在し、その定義が新リリースで変わる場合、その変更を反映するには、各PDBを別々にアップグレードする必要があります。表定義をCDBルートに1回格納すれば、この問題はなくなります。
データ・ディクショナリのコンポーネント
データ・ディクショナリは、実表およびビューで構成されています。
これらのオブジェクトは次のように定義されます。
-
実テーブル
データベースに関する情報を格納します。これらの表に読取り/書込みできるのはOracle AI Databaseだけです。これらの表は正規化され、データのほとんどは、暗号形式で格納されているため、ユーザーが直接アクセスすることはほとんどありません。
-
ビュー
実表にあるデータを、ユーザー名や表の名前などの実用的な情報にデコードし、結合と
WHERE句を使用して情報を簡略化します。ビューには、データ・ディクショナリ内のすべてのオブジェクトの名前と説明が含まれています。すべてのユーザーがアクセスできるビューもいくつかありますが、その他のビューは管理者のみが使用するように設計されています。
一般的に、データ・ディクショナリはセットとしてグループ化されています。多くの場合、次の表で示すように、そのセットは、類似した情報が格納されている3つのビューで構成され、それぞれが接頭辞によって区別されます。適切なビューに問合せを発行すると、自分に関係のある情報にのみアクセスできます。
表1データ・ディクショナリ・ビューのセット
| プリフィクス | ユーザー・アクセス権 | 目次 | ノート |
|---|---|---|---|
DBA_ |
データベース管理者が | すべてのオブジェクト | 一部のDBA_ビューには、管理者にとって有用な情報を含む列が追加されています。 |
ALL_ |
すべてのユーザー | ユーザーが権限を持つオブジェクト | ユーザーが所有するオブジェクトが含まれています。これらのビューは有効化されている現在の一連のロールに従います。 |
USER_ |
すべてのユーザー | ユーザーによって所有されているオブジェクト | 接頭辞がUSER_のビューには、通常、列OWNERは含まれません。この列は、問合せを発行するユーザーとして、USER_ビューに暗黙的に含まれています。 |
すべてのビュー・セットに3つのメンバーが含まれるわけではありません。たとえば、データ・ディクショナリにはDBA_LOCKビューはありますが、ALL_LOCKビューはありません。
システムによって提供されているDICTIONARYビューには、すべてのデータ・ディクショナリ・ビューの名前と短い説明が含まれています。次に、このビューに対する問合せと出力サンプルの一部を示します。
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
.
.
.
-
CDBのコンテナ・データ・オブジェクトコンテナ・データ・オブジェクトは、複数のコンテナまたはCDB全体に関連するデータが含まれる表またはビューです。
-
接頭辞が
DBA_の接頭辞がDBA_のビューには、データベース全体の関連情報がすべて表示されます。DBA_ビューは管理者のみを対象としています。 -
接頭辞が
ALL_の接頭辞がALL_のビューは、そのユーザーがそのデータベースに関して表示できるすべての内容を示します。 -
接頭辞がUSER_の画面通常のデータベース・ユーザーが最も使用しているのは、接頭辞が
USER_の画面です。 -
DUAL表
DUALは、Oracle AI Databaseおよびユーザーが記述したプログラムで既知の結果を参照できるデータ・ディクショナリ内の小さな表であり、
関連情報:
-
ビューの概要に関する項
-
データ・ディクショナリ・ビューとその列の完全なリストは、『Oracle AI Databaseリファレンス』を参照
CDBのコンテナ・データ・オブジェクト
コンテナ・データ・オブジェクトは、複数のコンテナまたはCDB全体に関連するデータを含む表またはビューである。
コンテナ・データの権限は、複数のPDBが1つのCDBに存在する一般的な要件をサポートしますが、異なるローカル管理の要件もあります。たとえば、ローカル管理を行わないアプリケーションDBAは、適切なビューに対するコンテナ・データの権限を共通ユーザーに付与できます。この場合、CDB管理者はこれらのPDBのデータにアクセスできます。これに対して、CDB管理者がデータにアクセスしないようにする必要があるPDB管理者は、コンテナ・データの権限を付与しません。
コンテナ・データ・オブジェクトの例は、Oracle提供のビューで、その名前はV$およびCDB_で始まります。すべてのコンテナ・データベース・オブジェクトには、CON_ID列があります。次の表に、この列の値の意味を示します。
表2コンテナID値
| コンテナID | 関連行 |
|---|---|
0 |
CDB全体 |
1 |
CDB$ROOT |
2 |
PDB$SEED |
| その他すべてのID | ユーザー作成のPDB、アプリケーション・ルートまたはアプリケーション・シード |
CDBでは、各DBA_ビューに、対応するCDB_ビューが存在します。CDB_ビューの所有者は、対応するDBA_ビューの所有者です。次の図は、異なるカテゴリのディクショナリ・ビューの間の関係を示しています。
図3: CDB内のディクショナリ・ビュー

現在のコンテナがPDBである場合、ユーザーは現在のPDBのデータ・ディクショナリ情報のみを表示できます。ただし、現在のコンテナがCDBルートである場合、共通ユーザーは、CDBルートとこのユーザーが権限を持つPDBのメタデータを確認するために、CDB_ビューに問い合せることができます。ノート: CDBルートから問合せされる際、CDB_ビューおよびV$ビューがデータをAL32UTF8文字セットに暗黙的に変換します。AL32UTF8に変換される際に文字セットで文字を表すためにバイト数がさらに必要な場合、そしてビューの列幅が特定のPDBのデータを収容できない場合、データの切捨てが可能です。
次の表に、CDB_ビューの問合せを示します。各行は、前の行のアクションの後に発生する操作について説明します。
表3 CDB_ビューの問合せ
| オペレーション | 摘要 |
|---|---|
|
|
|
SYSTEMはCDB_USERSに対して、CDBルートの共通ユーザー数を取得するように問い合せます。出力は、CDBルートに38個の共通ユーザーが存在することを示しています。 |
|
SYSTEMはCDB_USERSに対して、CDBの個別のコンテナ数を確認するように問い合せます。 |
|
SYSTEMユーザーは、今度はhrpdbというPDBに接続します。 |
|
SYSTEMはCDB_USERSに対して問い合せます。出力は、現在のコンテナ(hrpdb)に48個の共通ユーザーおよびローカル・ユーザーが存在することを示しています。 |
|
SYSTEMはDBA_USERSに対して問い合せます。出力は、前述の問合せと同じです。SYSTEMはCDBルートに接続していないため、DBA_USERSビューにはCDB_USERSと同じ出力が表示されます。DBA_USERSは、現行コンテナ内のユーザーのみを表示するため、48と表示されます。 |
接頭辞がDBA_のビュー
接頭辞がDBA_のビューには、データベース全体の関連情報がすべて表示されます。DBA_ビューは管理者のみを対象としています。
次の問合せの例では、データベース内のすべてのオブジェクトに関する情報が表示されます。
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM DBA_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
関連項目:管理権限の詳細は『Oracle AI Database管理者ガイド』を参照
接頭辞がALL_のビュー
接頭辞がALL_のビューが、ユーザーのデータベース全体の概要を参照します。
これらのビューは、ユーザーが所有しているスキーマ・オブジェクトに加えて、権限とロールのPUBLICへの付与や明示的な付与によってそのユーザーがアクセスできるようになったスキーマ・オブジェクトに関する情報を戻します。
たとえば次の問合せは、アクセス権を持っているすべてのオブジェクトに関する情報を戻します。
SELECT OWNER, OBJECT_NAME, OBJECT_TYPE
FROM ALL_OBJECTS
ORDER BY OWNER, OBJECT_NAME;
ALL_ビューは有効化されているロールの現在のセットに従うため、問合せの結果は、次に示す例のように、どのロールが有効化されているかによって異なります。
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
アプリケーション開発者は、ストアド・プロシージャでALL_ビューを使用するときに、ロールの効果を認識する必要があります。この場合、ロールはデフォルトで有効になりません。
接頭辞がUSER_のビュー
通常のデータベース・ユーザーが最も頻繁に使用するのは、接頭辞がUSER_のビューです。
これらのビューには、次のような特長があります。
-
ユーザーが作成したスキーマ・オブジェクトやユーザーの権限付与に関するメタデータなど、ユーザーのプライベートなデータベース環境を参照します。
-
ユーザーに関係する行のみを表示し、
ALL_ビューにある情報のサブセットを戻します。 -
列
OWNERが暗黙的に想定されることを除いて、他のビューと同一の列を持っています。 -
便宜上、
PUBLICシノニムを省略できます。
たとえば、次の問合せは、自分のスキーマに入っているすべてのオブジェクトを戻します。
SELECT OBJECT_NAME, OBJECT_TYPE
FROM USER_OBJECTS
ORDER BY OBJECT_NAME;
DUAL表
DUALは、既知の結果を保証するために、Oracle AI Databaseとユーザー作成プログラムが参照できる、データ・ディクショナリ内の小さな表です。
DUAL表は、現在の日時など、値を1回のみ戻す必要がある場合に役立ちます。DUALにはすべてのデータベース・ユーザーがアクセスできます。
DUAL表にはDUMMYという1つの列と、値Xを格納する1つの行があります。次の例では、算術演算を行うためにDUAL表に対する問合せを発行しています。
SQL> SELECT ((3*4)+5)/3 FROM DUAL;
((3*4)+5)/3
-----------
5.66666667
関連項目: DUAL表の詳細は、『Oracle AI Database SQL言語リファレンス』を参照してください
データ・ディクショナリの仕組み
Oracle AI Databaseユーザー・アカウントSYSは、データ・ディクショナリのすべての実表とユーザー・アクセス可能ビューを所有します。
データベースの操作時に、Oracle AI Databaseはデータ・ディクショナリを読み取って、スキーマ・オブジェクトが存在すること、およびユーザーのアクセス権を適切に付与されていることを確認します。Oracle AI Databaseは、データベース構造、監査、権限付与およびデータの変更を反映するために、継続的にデータ・ディクショナリを更新します。
たとえば、ユーザーhrがinternsという表を作成すると、新しい表、列、セグメント、エクステントおよびhrがその表に対して持っている権限を反映するために、新しい行がデータ・ディクショナリに追加されます。この新しい情報は、次回ディクショナリ・ビューを問い合せるときに表示されます。
データ・ディクショナリの実表内のデータは、Oracle AI Databaseを機能させるために必要です。データ・ディクショナリ情報の書込みまたは変更を行うのは、Oracle AI Databaseのみです。Oracle AI Databaseユーザーは、SYSスキーマに含まれる行またはスキーマ・オブジェクトを変更しないでください。このようなアクティビティによってデータの整合性が損なわれる可能性があるためです。セキュリティ管理者は、この重要なアカウントを厳しく管理し続ける必要があります。
警告:データ・ディクショナリ表のデータを変更または操作することで、データベース操作に永続的かつ有害な影響を与える可能性があります。
-
メタデータおよびデータ・リンク CDBは、内部リンク・メカニズムを使用して、データ・ディクショナリ情報を分けます。
-
データ・ディクショナリ・ビュー用のパブリック・シノニムOracle AI Databaseでは、多くのデータ・ディクショナリ・ビューに対してパブリック・シノニムが作成されます。それによって、ユーザーがそれらのビューにアクセスしやすくなるようになります。
-
データ・ディクショナリ・キャッシュデータ・ディクショナリの情報の多くは、データ・ディクショナリ・キャッシュに含まれており、これはユーザーのアクセスの正当性のチェックと、スキーマ・オブジェクトの状態検証のため、データベースは常にこれらの情報が必要とされるためです。
-
他のプログラムとデータ・ディクショナリ他のOracle AI Database製品で、既存のビューを参照することや、固有のデータ・ディクショナリ表またはビューを追加作成することができます。関連項目: 「SYSおよびSYSTEMアカウント」
メタデータ・リンクとデータ・リンク
CDBは、内部リンク・メカニズムを使用して、データ・ディクショナリ情報を分けます。
具体的には、Oracle AI Databaseでは、自動的に管理される次のポインタを使用します。
-
メタデータ・リンク
Oracle AI Databaseでは、ディクショナリ・オブジェクトのメタデータは、CDBルート内にしか格納されません。たとえば、
DBA_OBJECTSデータ・ディクショナリ・ビューの基礎であるOBJ$ディクショナリ表の列定義は、CDBルートにしか存在しません。図9-2に示すように、各PDB内のOBJ$表はメタデータ・リンクと呼ばれる内部メカニズムを使用して、CDBルートに格納されているOBJ$の定義を指し示します。メタデータ・リンクに対応するデータは、CDBルートではなく、そのPDBに常駐します。たとえば、
hrpdbに表mytableを作成し、これに行を追加する場合、その行はCDBルートのデータ・ファイルではなく、PDBのデータ・ファイルに格納されます。PDBおよびCDBルートのデータ・ディクショナリ・ビューには、異なる行が含まれます。たとえば、
mytableを説明する新しい行は、hrpdbのOBJ$表に存在し、CDBルートのOBJ$表には存在しません。したがって、CDBルートのDBA_OBJECTSの問合せと、hrdpbのDBA_OBJECTSでは、異なる結果が表示されます。 -
データリンク
ノート:データ・リンクはOracle Database 12c Release 1 (12.1.0.2)でオブジェクト・リンクと呼ばれていました。
場合によっては、Oracle AI Databaseで(メタデータのみではなく)オブジェクトのデータがアプリケーション・コンテナのアプリケーション・ルートに1回しか格納されないこともあります。複数の地域で別々のPDBを持つE-Commerceの会社を考えてみてください。アプリケーション・ルートには、
postal_codesという名前の表が格納されていて、米国のすべての郵便番号がリストされています。このコンテナのすべてのアプリケーションPDBは、共通のpostal_codes表にアクセスする必要があります。アプリケーションPDBでは、データ・リンクと呼ばれる内部メカニズムを使用してアプリケーション・ルートのオブジェクトを参照します。データ・リンクが作成されたアプリケーションPDBには、データ・リンクの説明も格納されます。データ・リンクは、参照先のオブジェクトのデータ型を継承します。
-
拡張データ・リンク
拡張データ・リンクは、データ・リンクとメタデータ・リンクを合成したものです。データ・リンクと同じように、拡張データ・リンクはアプリケーション・ルートのオブジェクトを参照します。しかし、拡張データ・リンクはアプリケーションPDBの対応するオブジェクトも参照します。たとえば、アプリケーションPDBに米国の郵便番号とカナダの郵便番号の両方を格納する拡張データ・リンク表がある場合があります。メタデータ・リンクと同じように、アプリケーションPDBのオブジェクトはアプリケーション・ルートの対応するオブジェクトからメタデータを継承します。
アプリケーション・ルートで問合せを実行すると、拡張データリンク表はアプリケーション・ルートからのみ行をフェッチします(米国の郵便番号のみなど)。ただし、アプリケーションPDBで問合せを実行すると、拡張データリンク表は、アプリケーション・ルートとアプリケーションPDBの両方から行をフェッチします(たとえば、米国の郵便番号とカナダの郵便番号)。
Oracle AI Databaseでは、CDB$ROOTに対するメタデータ・リンクとデータ・リンクを自動的に作成および管理します。ユーザーは、これらのリンクを追加、変更または削除できません。
関連情報:
-
データ・ディクショナリの概要は、『Oracle AI Database概要』を参照してください。
データ・ディクショナリ・ビューのパブリック・シノニム
Oracle AI Databaseでは、多くのデータ・ディクショナリ・ビューのパブリック・シノニムが作成されます。それによって、ユーザーがそれらのビューにアクセスしやすくなっています。
セキュリティ管理者は、システム全体で使用するスキーマ・オブジェクトのパブリック・シノニムを作成して追加することもできます。プライベート・スキーマ・オブジェクトとパブリック・シノニムに同じ名前を使用しないことをお薦めします。
関連項目: 「シノニムの概要」
データ・ディクショナリ・キャッシュ
データ・ディクショナリの情報の多くは、データ・ディクショナリ・キャッシュに含まれています。これは、ユーザーのアクセスの検証や、スキーマ・オブジェクトの状態検証のために、データベースで常にこの情報が必要とされるためです。
通常、キャッシュには解析情報が含まれます。表とそれらの列について記述しているCOMMENTS列は、ディクショナリ・キャッシュにはキャッシュされませんが、データベース・バッファ・キャッシュにキャッシュされることがあります。
関連項目: 「データ辞書キャッシュ」
他のプログラムとデータ・ディクショナリ
他のOracle AI Database製品で、既存のビューを参照することや、固有のデータ・ディクショナリ表またはビューを追加作成することができます。
データ・ディクショナリを参照するプログラムを記述するアプリケーション開発者は、基礎となる表ではなくパブリック・シノニムを使用することをお薦めします。これは、シノニムの方がリリース間での変更が少ないためです。
データ・ディクショナリの記憶域
CDB全体のメタデータを格納するデータ・ディクショナリは、システム表領域にのみ格納されます。
特定のPDBのメタデータを格納するデータ・ディクショナリは、このPDB専用の自己完結型表領域に格納されます。PDB表領域には、アプリケーション・バックエンドのデータとメタデータの両方が格納されます。このため、データ・ディクショナリ表の各セットは、それぞれの専用の表領域セットに格納されます。
参照: SYSTEM表領域の詳細は、「SYSTEM表領域」を参照してください。
動的パフォーマンス・ビューの概要
Oracle AI Databaseでは、その稼働中は、現在のデータベース・アクティビティを記録する一連の仮想表が保持されます。
これらのビューは、データベースがオープンで使用中の間は継続的に更新されるため、動的です。このビューは名前がV$で始まるため、V$ビューと呼ばれることもあります。
動的パフォーマンス・ビューには次のような情報が含まれています。
動的パフォーマンス・ビューの主な用途は、次のとおりです。
-
Oracle Enterprise Managerでは、データベースに関する情報を取得するためにこのビューを使用します。
-
管理者はこのビューを使用して、パフォーマンスを監視し、デバッグを実行できます。
-
動的パフォーマンス・ビューの内容動的パフォーマンス・ビューは、データベース管理者が変更または削除できないため、固定ビューと呼ばれます。しかし、データベース管理者は、これらの表のビューに問合せを発行したり、ビューを作成したり、それらのビューにアクセスする権限を他のユーザーに付与できます。
-
動的パフォーマンス・ビューのストレージ動的パフォーマンス・ビューは、データベースのメモリー構造から構築された仮想テーブルに基づいています。動的パフォーマンス・ビューの完全なリストは、『Oracle AI Databaseリファレンス』も参照してください。
動的パフォーマンス・ビューの内容
動的パフォーマンス・ビューは、データベース管理者が変更または削除できないため、固定ビューと呼ばれます。しかし、データベース管理者は、これらの表のビューに問合せを発行したり、ビューを作成したり、それらのビューにアクセスする権限を他のユーザーに付与できます。
動的パフォーマンス表はSYSが所有し、その名前はV_$で始まります。これらの表に対してビューが作成され、V$という接頭辞を持つパブリック・シノニムが作成されます。たとえば、V$DATAFILEビューにはデータファイルに関する情報が格納されます。V$FIXED_TABLEビューにはすべての動的パフォーマンス表およびビューに関する情報が格納されます。
ほとんどのV$ビューに対して、対応するGV$ビューが存在します。Oracle Real Application Clusters (Oracle RAC)では、GV$ビューに対して問合せを実行すると、該当するすべてのインスタンスからV$ビュー情報が取り出されます。
Database Configuration Assistant(DBCA)を使用してデータベースを作成する場合は、データ・ディクショナリがOracleによって自動的に作成されます。Oracle AI Databaseでは、自動的にcatalog.sqlスクリプトが実行され、このスクリプトでは、その動的パフォーマンス・ビューの、ビューおよびパブリック・シノニムの定義が含まれます。これらのビューとシノニムを作成するには、catalog.sqlを実行する必要があります。
関連情報:
-
catalog.sqlを手動で実行する方法を学習するには、Oracle AI Database管理者ガイドを参照 -
Oracle RACでパフォーマンス・ビューを使用する方法について学習するには、『Oracle Real Application Clusters管理およびデプロイメント・ガイド』を参照してください
動的パフォーマンス・ビューの記憶域
動的パフォーマンス・ビューは、データベースのメモリー構造から構築された仮想表に基づいています。
これらのビューはデータベース内に格納される従来型の表ではありません。これらのビューではデータが動的に更新されるため、読取り一貫性は保証されません。
動的パフォーマンス・ビューは実際の表ではないため、データはデータベースおよびデータベース・インスタンスの状態に依存します。たとえば、データベースが起動されており、マウントされていないとき、V$INSTANCEおよびV$BGPROCESSに対する問合せを発行できます。ただし、データベースがマウントされるまでは、V$DATAFILEに対する問合せは発行できません。
参照: 「データの同時実行性と整合性」
データベース・オブジェクト・メタデータ
DBMS_METADATAパッケージおよびDBMS_DEVELOPER.GET_METADATAファンクションには、データベース・オブジェクトの完全な定義を抽出するためのインタフェースが用意されています。
これらの定義は、DBMS_METADATAパッケージを使用して、XMLまたはSQL DDLのいずれかで表すことができます。Oracle AI Databaseでは、柔軟で洗練された、プログラム制御用のインタフェースと、単純化された、非定型の問合せ用のインタフェースの2種類のインタフェースが提供されます。
DBMS_DEVELOPER.GET_METADATAファンクションを使用すると、オブジェクト・メタデータがJSONドキュメントとして返されます。
関連項目: 『Oracle AI Database PL/SQLパッケージおよびタイプ・リファレンス』(DBMS_METADATAの詳細)を参照してください。DBMS_DEVELOPER.GET_METADATAについては、『Oracle AI Database PL/SQLパッケージおよびタイプ・リファレンス』を参照してください。