Oracle提供了大量的内部表,他们记录了数据库对象的更改和修正。可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的性能表。这些内部表是由oracle维护的,可以说它们是只读表。用户包括sys都不能修改,只能查看。
数据字典
数据字典的功能
- central of database
- read_only table and views
- owner : sys
4)oracle server 维护,ddl操作会更新
5)通过select访问
6)记录数据库的物理,逻辑结构(表空间)和模式信息及对象信息(用户,约束,权限,审计等)
7)存放在system tablespace
select * from dict where table_name=‘DBA_OBJECTS’;
selectcount(*)
from dict;
数据字典的组成
1)字典基表 : 由create database时,执行/u01/oracle/rdbms/admin/sql.bsd脚本
2)静态视图 :执行/u01/oracle/rdbms/admin/catalog.log
数据字典:静态(static)视图
static : 在数据库open状态下访问,可以通过静态视图了解database的架构(记录database的架构,object的数据定义和存储等信息)。
dba_ : 存储所有用户对象的信息(默认只能有sys/system用户访问)。
all_ : 存储当前用户能够访问的对象(包括用户所拥有的对象和别的用户授权访问的对象)的信息。
user_ : 存储当前用户所拥有的对象的相关信息。
※ 考点 :示例参数07_DICTIONARY_ACCESSIBILITY在缺省时为FALSE,这将限制具有select any table权限的非DBA用户访问sys用户下的对象,否则这些非DBA用户也能查看dba_。
动态性能视图(v$)
是维护当前示例信息的,由于不断地更新,所以也叫动态视图。其底层是一组虚拟的动态表称为·X$
表,Oracle不允许直接访问 X$
表,而是在这些表上创建视图,然后再创建这些使徒的同义词。
可以通过v$fixed_table
视图插到所有的动态视图的的名称:用于调优和数据库监控。从Oracle8开始,GV$
视图开始被引入,其含义为GlobalV$
,GV$
的产生是为了满足OPS环境的需要,除了一些特例以外,每个v$
视图都有一个GV$
视图存在。
select count(*) from v$fixed_table;
※ 考点:动态性能视图填充了来自实例和控制文件的信息,前缀为DBA_,ALL_USER_的视图则填充了来自数据字典的信息,此差异决定了可以再不同启动阶段查询哪些视图。