我们大家都知道在Oracle数据库运行的过程中,我们经常会使用一些关于V$开头的Oracle 动态视图,例如V$session, 在一次偶然的情况下有人用的是V_$session, 一开始以为是别人写错了,没想到desc v_$session以后能看到和v$session一样的结构,再以后又发现以gv$开头的视图等等。

趁这次在一台Linux系统上装Oracle的机会,终于弄清楚了这些动态视图与相应表之间的关系。

这些都是由Oracle自己管理的数据结构,得从v$fixed_table入手:

    [Oracle@3857admin]$sqlplussys/sys@archdwassysdba SQL*Plus:Release11.2.0.1.0ProductiononMonDec1411:27:202009 Copyright(c)1982,2009,Oracle.Allrightsreserved. Connectedto: OracleDatabase11gEnterpriseEditionRelease11.2.0.1.0–Production WiththePartitioning,OLAP,DataMiningandRealApplicationTestingoptions SQL>descv$fixed_table; NameNull?Type —————————————–——–—————————- NAMEVARCHAR2(30) OBJECT_IDNUMBER TYPEVARCHAR2(5) TABLE_NUMNUMBER SQL>select*fromv$fixed_table NAMEOBJECT_IDTYPETABLE_NUM —————————————-—–———- X$KQFTA4294950912TABLE0 X$KQFVI4294950913TABLE1 GV$PROCESS4294951256VIEW65537 V$PROCESS4294950917VIEW65537 GV$BGPROCESS4294951257VIEW65537 ………………………………………

从上面可以看到GV$与V$是视图,X$是表。那它们之间是什么关系呢?从另一个视图v$fixed_view_definition中得到如下信息(以v$fixed_table为例):

    SQL>setlinesize100 SQL>colview_namefora15 SQL>colview_definitionfora80 SQL>select*fromv$fixed_view_definitionwhereview_name=’V$FIXED_TABLE’; VIEW_NAMEVIEW_DEFINITION

上述的相关内容就是对Oracle 动态视图的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

    Oracle数据库的启用与关闭的归档模式Oracle修改字段类型2种方案介绍Oracle数据文件的特性介绍获得Oracle系统性能的典型方案Oracle表中数据导出成 Txt格式的方案