前端之家收集整理的这篇文章主要介绍了
ORACLE的数据字典表和动态性能视图,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
Oracle提供了大量的内部表,它们记录了
数据库对象的更改和修正。可以将这些内部表划分为两种主要类型:静态的数据字典表和动态的
性能表。这些内部表是由oracle维护的,可以说它们是只读表。
用户包括sys都不能
修改。 10.1.1 数据字典的
功能(Data Dictionary) 1) central of database 2)read_only table and views,通过select访问 3)Oracle server 维护,ddl操作会更新 4)记录
数据库的物理、逻辑结构(表空间)和模式信息及对象信息(
用户、约束、权限、审计等) 5)存放在system tablespace 通过dict记录了所有数据字典表的
名称(dict是dictionary的同义词,另外的视图是dict_columns)
sql> select * from dict where table_name='DBA_OBJECTS'; TABLE_NAME COMMENTS --------------------------------------------- ------------------------------------------------------------ DBA_OBJECTS All objects in the database
sql> select count(*) from dict; COUNT(*) ---------- 2323 10.1.2 数据字典的组成: 数据字典由四部分组成: 1)内部表(X$): Oracle的核心,官网不做说明,Oracle通过大量X$建立起大量视图,仅供
用户select。 2)数据字典表: 用以存储表、索引、约束以及其他
数据库结构信息,通常以$结尾,如tab$,obj$,ts$,aud$等。 3)动态
性能表(V$): 实时更新反应当前的
数据库状态,官网对V$视图有详尽的说明。 4)数据字典视图: 在X$表和数据字典表上创建,通常分为三类dba_,all_,user_. 实际工作中最常用的是数据字典视图和动态
性能表: 10.1.3 数据字典视图:静态(static)视图 static :在
数据库open状态下访问,可以通过静态视图了解database的架构(记录database的架构,object的数据定义和存储等信息) dba_ : 存储所有
用户对象的信息(默认只能有sys/system
用户访问) all_ : 存储当前
用户能够访问的对象(
包括用户所拥有的对象和别的
用户授权访问的对象)的信息。 user_:存储当前
用户所拥有的对象的相关信息。 注意点:实例参数O7_DICTIONARY_ACCESSIBILITY在缺省时为FALSE,这将限制具有select any table权限的非DBA
用户访问sys
用户下的对象,否则这些非DBA
用户也能查看dba_。 10.2 动态
性能表(V$) 是维护当前实例信息的,由于不断的更新,所以也叫动态视图。其底层是一组虚拟的动态表称为X$表,oracle不允许直接访问X$表,而是在这些表上创建视图,然后再创建这些视图的同义词。 基表(x$)-------------视图(v_$)--------------同义词v$-------User access 可以通过v$fixed_table 视图 查到所有的动态视图的
名称;用于调优和
数据库监控。从Oracle8开始, GV$视图开始被引入,其含义为Global V$,GV$的产生是为了满足RAC(OPS)环境的需要,除了一些特例以外,每个V$视图都有一个GV$视图存在。
sql> select count(*) from v$fixed_table; COUNT(*) ---------- 1741 *注意点:动态
性能视图填充了来自实例和控制
文件的信息,前缀为DBA_、ALL_、USER_的视图则填充了来自数据字典的信息,此差异决定了可以 在不同启动阶段
查询那些视图。
原文链接:https://www.f2er.com/oracle/213435.html