知识大全 Oracle动态视图

Posted 视图

篇首语:少年乘勇气,百战过乌孙。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle动态视图相关的知识,希望对你有一定的参考价值。

Oracle动态视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  在oracle运维的过程中 经常会使用到一些以V$开头的动态视图 比如V$session 有一次偶然看到有人用V_$session 初以为别人写错了 没想到desc v_$session以后能看到和v$session一样的结构 再以后又发现以gv$开头的视图等等 趁这次在一台Linux系统上装oracle的机会 终于弄清楚了这些动态视图与相应表之间的关系

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

  [oracle@ admin]$ sqlplus sys/sys@archdw as sysdba

  SQL*Plus: Release Production on Mon Dec : :

  Copyright (c) Oracle   All rights reserved

  Connected to:

  Oracle Database g Enterprise Edition Release – Production

  With the Partitioning OLAP Data Mining and Real Application Testing options

  SQL> desc v$fixed_table;

  Name                                      Null?    Type

  —————————————– ——– —————————

  NAME                                               VARCHAR ( )

  OBJECT_ID                                          NUMBER

  TYPE                                               VARCHAR ( )

  TABLE_NUM                                          NUMBER

  SQL> select * from v$fixed_table

  NAME                            OBJECT_ID TYPE   TABLE_NUM

  —————————— ——— —– ———

  X$KQFTA                        TABLE         

  X$KQFVI                        TABLE         

  GV$PROCESS                     VIEW      

  V$PROCESS                      VIEW      

  GV$BGPROCESS                   VIEW      

  ………………………………………

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

  SQL> set linesize

  SQL> col view_name for a

  SQL> col view_definition for a

  SQL> select * from v$fixed_view_definition where view_name= V$FIXED_TABLE ;

  VIEW_NAME            VIEW_DEFINITION

  ———————       ——————————————————————————–

  V$FIXED_TABLE     select  NAME OBJECT_ID TYPE TABLE_NUM from GV$FIXED_TABLE where inst_id =

  USERENV( Instance )

  SQL> select * from v$fixed_view_definition where view_name= GV$FIXED_TABLE ;

  VIEW_NAME               VIEW_DEFINITION

  ————————      ——————————————————————————–

  GV$FIXED_TABLE    select inst_id kqftanam kqftaobj TABLE indx from x$kqfta union all select i

  nst_id kqfvinam kqfviobj VIEW from x$kqfvi union all select inst_id k

  qfdtnam kqfdtobj TABLE from x$kqfdt

  原来gv$是全局视图 而v$是针对某个实例的视图 $X是所有gv$的数据来源 从gv$到v$需要加上where inst_id = USERENV( Instance ) 一般来说一个oracle数据库只会有一个实例对其操作 但在RAC上可以有多台实例同时装载并打开一个数据库 在RAC上得到的结果是

  etl@ALIDW> select distinct inst_id from gv$session;

  INST_ID

  ———

  

  

  

  

  这rac上有四个实例 嗯 再次加深了对实例与数据库的理解

  那gv_$与v_$的定义又在什么地方呢?原来在$ORACLE_HOME/rdbms/admin存放著系统管理脚本 在catalog sql中发现

  –CATCTL S    Initial scripts single process

  @@cdstrt

  @@cdfixed sql

  @@cdcore sql

  –CATCTL M

  @@cdplsql sql

  @@cdsqlddl sql

  ……………………………………………………………………………

  进一步在cdfixed sql中找到

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

  create or replace public synonym v$fixed_table for v_$fixed_table;

  grant select on v_$fixed_table to select_catalog_role;

  create or replace view gv_$fixed_table as select * from gv$fixed_table;

  create or replace public synonym gv$fixed_table for gv_$fixed_table;

  grant select on gv_$fixed_table to select_catalog_role;

  ……………………………………………………………………………………………………………

  [oracle@ admin]$ sqlplus sys/sys@archdw as sysdba

  SQL> select * from user_role_privs;

  USERNAME                       GRANTED_ROLE                   ADM DEF OS_

  —————————— —————————— — — —

  SYS                            SELECT_CATALOG_ROLE            YES YES NO

  因此我们常用的v$ 是v_$的同义词 v_$是基于真正的视图v$ 而真正的v$视图是在gv$的基础上限制inst_id得到;

cha138/Article/program/Oracle/201311/18981

相关参考

知识大全 通过Oracle动态性能视图采集查询调优数

通过Oracle动态性能视图采集查询调优数  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  对于现

知识大全 动态性能视图,Oracle数据库维护的好帮手(一)

动态性能视图,Oracle数据库维护的好帮手(一)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 动态性能视图,Oracle数据库维护的好帮手(二)

动态性能视图,Oracle数据库维护的好帮手(二)  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 

知识大全 动态视图V$ROWCACHE

动态视图V$ROWCACHE  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  V$ROWCACHE

知识大全 Oracle数据库-视图的概念

Oracle数据库-视图的概念  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一视图概念  视图

知识大全 oracle系统视图总结

  dba视图  select*fromdba_data_files  指定表空间的数据文件及所在的路径  select*fromdba_free_space  

知识大全 oracle与用户角色权限相关的视图

  Oracle本身的数据字典设计我个人觉得很合理因为DBA_xxxALL_xxxUSER_xxx 让人一看大概就知道这个视图是干什么用的本文简要总结了一下与权限角色相关的视图一概述  与权

知识大全 Oracle数据库视图管理经验技巧

Oracle数据库视图管理经验技巧  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  视图对于数据库

知识大全 oracle10g新特性—物化视图

  Advisor       在g将查询重写并且引进了新的强大的调优建议者使管理物化视图变得容易多了  物化视图(Materia

知识大全 ORACLE常用数据字典的查询视图

ORACLE常用数据字典的查询视图  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  用户  查看用