oracle

Oracle 動的パフォーマンスビューとデータディクショナリビュー

動的パフォーマンスVIEW

Oracleデータベースの「パフォーマンスに関する今を調べる」ためのビュー。データディクショナリはDiskに書かれて保存(静的)される事に対し、メモリにしか存在しない今の状態を確認できる(データベースが起動してから常に更新され続けている)。そのためOracleのマニュアルには「select操作の読取り一貫性は保証されない」と記載されています。なので他のテーブルとの結合や、group byなどは保証されない事になります。

「V$ビュー」と呼称されてはいますが、厳密には違います。V$で始まっているオブジェクトは「パブリックシノニム」で、VIEWそのものは、V_$で始まります。こちらはSYSスキーマが保有しています。

データディクショナリVIEW

Oracleデータベースに関する重要な情報はSYSTEM表領域に納まっており、DBA_XXXというVIEWで参照する事ができる。(ALL_XXX、USER_XXXも本質的には同じです)データディクショナリは全てSYSスキーマが保有しています。一般的なユーザがアクセスする場合「パブリックシノニム」にてアクセスしています。(例:SYS.DBA_OBJECTSというVIEWは、DBA_OBJECTSというパブリックシノニムが定義されているので一般ユーザはパブリックシノニムでアクセスしている)

これはどうでもいい話なのですが、動的パフォーマンスVIEWが「V_$」と「V$」で区別されている事に対し、なんでデータディクショナリは「同じ名前」にしているんですかね、、

スポンサーリンク
タイトルとURLをコピーしました