ITPub博客

首页 > 数据库 > Oracle > 深入浅出数据字典摘要

深入浅出数据字典摘要

原创 Oracle 作者:dotaddjj 时间:2012-02-06 21:47:31 0 删除 编辑

Eygle深入浅出的数据字典摘要:

Oracle数据字典存储的是oracle内部的元数据,而数据字典一般是只读的,由4部分组成:内部rbdms(x$)表,数据字典表,动态性能(v$)视图和数据字典视图。

X$表是oracle运行基础,在数据库启动时由oracle应用程序创建。不允许授权其他sys用户访问,比较常见x$bh,x$ksmsp,x$kvit等。

SQL> grant select on x$kvit to xiaoyu;

grant select on x$kvit to xiaoyu

ORA-02030: 只能从固定的表/视图查询

不过使用autotrace、explain plan查看sql语句,常用的v视图执行计划的实质却是底层的x视图。

SQL> explain plan for select * from v$parameter;

Explained

SQL> select * from table(dbms_xplan.display());

PLAN_TABLE_OUTPUT

--------------------------------------------------------------------------------

Plan hash value: 1128103955

------------------------------------------------------------------------------

| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time |

------------------------------------------------------------------------------

| 0 | SELECT STATEMENT | | 1 | 926 | 1 (100)| 00:00:01 |

|* 1 | HASH JOIN | | 1 | 926 | 1 (100)| 00:00:01 |

|* 2 | FIXED TABLE FULL| X$KSPPI | 1 | 249 | 0 (0)| 00:00:01 |

| 3 | FIXED TABLE FULL| X$KSPPCV | 100 | 67700 | 0 (0)| 00:00:01

提一下x$kvit视图记录的是实例运行的一些信息,例如后台进程dbwr达到以下条件时会触发:

Dirty buffers达到阀值25%

no free buffer当进程扫描LRU一定数量block还找不到free space,触发dbwr执行写出(此时会伴随一个free buffer waits等待事件,是由于需要把datafile的block写入到buffer cache中但是扫描LRU一定数量block后还是找不到free space)

数据字典表用以存储表、索引、约束等数据库结构信息,一般以$结尾例如bootstrap$、undo$,在创建数据库的时候运行$oracle_home/dbms/sql.bsq脚本创建。

动态性能视图记录的数据库运行信息和统计数据,大部分动态性能视图被实时更新以反映数据库当前状态。

常见的v视图和gv视图,gv视图是用于rac环境下,而v视图是基于gv$视图的,增加了inst_id列的where条件inst_id=userenv(‘instance’)返回当前instance信息。我们可以利用v$fixed_table和v$fixed_view_definition查看v$ gv$和x$的有关信息。

Oracle为了安全机制创建了gv_视图、v_视图和public的gv同义词、v同义词,创建的信息存储于oracle_homerbdmsadmincatalog.sql下。

Create or replace view v_$fixed_table as select * from v$fixed_table;

Create or replace public synonym v$fixed_table as select * from v_$fixed_table;

通过v_视图,oracle把v$视图和普通用户隔离,普通用户是无法访问v视图的,v_$视图可以授予其他用户,v$视图则不允许。

所以,实际上通常的大部分用户访问的v$对象,并不是视图,而是指向v_$视图的synonym。

(访问的优先级table>view>私有synonym>publict synonym)

[@more@]

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/25362835/viewspace-1057284/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
  • 博文量
    220
  • 访问量
    1662975