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博客 ” ,链接:http://blog.itpub.net/25362835/viewspace-1057284/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25362835/viewspace-1057284/