##はじめに
Oracleのデータ・ディクショナリのメモ
だいたい、Oracle12以降で確認
##データディクショナリビューとは
データベース内のオブジェクト(表やビュー、索引、プロシージャなどなど)や表領域、ユーザ、権限などデータベースに係わる様々な情報をテーブル形式で確認する
##データ・ディクショナリのテーブルを確認する
以下のSQLでテーブルの一覧を取得できる
select * from dict
↓テーブル数をカウントする ※Oracle
select count(*) from dict
結果:4675件
多すぎるのでよく利用するものをピックアップ
##よく利用するもの
ビュー名 | 内容 |
---|---|
DBA_DATA_FILES | データファイル |
DBA_FREE_SPACE | データファイルのフリースペース確認 |
DBA_INDEXES | インデックス情報 |
DBA_OBJECTS | オブジェクト情報 |
DBA_SEGMENTS | セグメント |
DBA_SEQUENCES | シーケンス |
DBA_SOURCE | プロシージャのソース |
DBA_SYS_PRIVS | 権限確認。ユーザーおよびロールに付与されたシステム権限 |
DBA_TAB_COMMENTS | テーブルのコメント |
DBA_TABLES | テーブル |
DBA_TABLESPACES | 表領域 |
USER_INDEXES | インデックス情報 |
USER_SYS_PRIVS | ユーザ権限 |
USER_TAB_COMMENTS | テーブルのコメント |
USER_TABLES | テーブル情報 |
V$ACTIVE_SESSION_HISTORY | サンプリングされたセッション・アクティビティ |
V$DATAFILE | データファイル |
V$LOCKED | ロック情報 |
V$PARAMETER | 各種パラメータ |
V$PGASTAT | 初期化パラメータの現在の値 |
V$PROCESS | プロセス |
V$PX_PROCESS_SYSSTAT | 現在パラレル操作を実行しているPXサーバー数 |
V$RESOURCE_LIMIT | セッション、プロセス等の情報を取得する |
V$SESSION | 現在のセッション情報 |
V$SESSION_LONGOPS | 内部処理で6秒(絶対時間)以上のSQLID |
V$SGAINFO | SGAの設定 |
V$SGASTAT | SGA |
V$SQL | 実行されたSQLの情報を取得する。GROUP BY句のない共有SQL領域についての統計情報 |
V$SQLAREA | 共有SQL領域の統計情報を示し、SQL文字列ごとに1行ずつ表示する。 |
V$SQLSTATS | SQLカーソルに関する基本的なパフォーマンス統計情報 |
V$SQLTEXT | SGA内の共有SQLカーソルに属するSQL文のテキスト |
V$SYSSTAT | システム統計情報 |
V$SYSTEM | システム情報 |
V$VERSION | バージョン情報 |
ALL_TAB_COLUMNS | ログインユーザーがアクセスできるすべてのカラム一覧 |
DBA_TAB_COLUMNS | データベース内のすべてのカラム一覧 |
USER_TAB_COLUMNS | ログインユーザーのカラム一覧 |
##v$sql、v$sqlarea、v$sqltextの違い
これらは、よく似ているので
・V$SQL
同じSQLを発行すると親カーソルが共有されるため同じSQL_IDとなる
親カーソルにはSQLが保存されていますが子カーソルには含まれない代わりに実行計画などの情報が含まれる。
V$SQLでは、子カーソルの粒度の情報。
・V$SQLAREA
v$sqlをSQL_IDでサマリしたもの。
ELAPSED_TIME(処理時間)などはv$sqlの値の合計値である。
・V$SQLTEXT
SQLが一定の長さで別レコードに分割されたもの。
SQL_IDで検索すると、SQL文が確認できる。
##履歴
2022/1/24