数据字典概述
每个 oracle 的只读参考表和视图集合统称为数据字典,提供有关数据库管理的元数据。
数据字典包含以下信息:
1. 数据库中每个 schema、object 的定义,包括列的缺省值和完整的约束信息;
2. 为每个 object 分配和当前使用的空间量;
3. 数据库 user 的名称,授予该用户的权限、角色以及相关的审计信息。
例如:
USER_USERS、ALL_USERS、DBA_USERS
动态性能视图概述
数据库在使用中实时更新的特殊视图称为 --- 动态性能视图
例如:
V$ASM_USER、GV$ASM_USER
视图前缀及其含义
前缀 | 含义 |
USER | 代表用户、schema 视图 |
ALL | 扩展用户视图,在 USER_ 基础上的其它权限 |
DBA | 管理员视图,所有 schema 下的 |
V$ | 动态性能视图 |
GV$ | 由于比V$多一个 INST_ID 的列,所以 GV$ 视图可以查询 RAC 动态性能 |
DICT/DICTONARY 字典表的使用
DICTIONARY (字典)记录了所有字典表和动态性能视图的名称及描述信息,它是字典表的索引表,所以我们可以把它理解为数据字典的字典表。
SQL> describe dictionary Name Null Type ----------------------------------------------------- -------- ------------------------------------ TABLE_NAME VARCHAR2(30) COMMENTS VARCHAR2(4000) SQL> desc dict Name Null Type ----------------------------------------------------- -------- ------------------------------------ TABLE_NAME VARCHAR2(30) COMMENTS VARCHAR2(4000)
例: 如果我们需要查看所有 TABLE 相关的字典表或视图,我们即可使用以下语句查找
SQL> COL COMMENTS FOR A60 SQL> SELECT table_name FROM dict WHERE table_name LIKE '%&object_name%'; Enter value for object_name: TABLE old 1: SELECT table_name FROM dict WHERE table_name LIKE '%&object_name%' new 1: SELECT table_name FROM dict WHERE table_name LIKE '%TABLE%' TABLE_NAME ------------------------------ DBA_ADVISOR_SQLA_TABLES DBA_ADVISOR_SQLW_TABLES DBA_ALL_TABLES DBA_APPLY_TABLE_COLUMNS DBA_BASE_TABLE_MVIEWS DBA_CAPTURE_PREPARED_TABLES DBA_EVALUATION_CONTEXT_TABLES DBA_EXTERNAL_TABLES DBA_FILE_GROUP_TABLES DBA_FILE_GROUP_TABLESPACES DBA_FLASHBACK_ARCHIVE_TABLES DBA_HIST_TABLESPACE DBA_HIST_TABLESPACE_STAT DBA_LOGSTDBY_EDS_TABLES DBA_LOGSTDBY_UNSUPPORTED_TABLE DBA_MINING_MODEL_TABLES ......
参考
Oracle 11g 官方文档