iplaybit
  • 首页
  • 系统运维
  • IT新闻
  • 科技新闻
  • 关于我们
  1. 首页
  2. 系统运维
  3. 正文

Oracle 动态视图V$,V_$,GV$,GV_$与X$之间的关系

2019年12月26日 487点热度 1人点赞 0条评论
gv$是全局视图,而v$是针对某个实例的视图,$X是所有gv$的数据来源,从gv$到v$需要加上where inst_id = USERENV(’Instance’)。一般来说一个oracle数据库只会有一个实例对其操作,但在RAC上可以有多台实例同时装载并打开一个数据库,在RAC上得到的结果是:
etl@ALIDW> select distinct inst_id from gv$session;
从另一个视图v$fixed_view_definition中得到如下信息(以v$fixed_table为例):
那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@3857 admin]$ sqlplus sys/sys@archdw as sysdba
SQL> select * from user_role_privs;
因此我们常用的v$ 是v_$的同义词,v_$是基于真正的视图v$,而真正的v$视图是在gv$的基础上限制inst_id得到;
我们常用的gv$是gv_$的同义词,gv_$基于真正的视图gv$,而真正的gv$视图基于系统表X$。
标签: oracle 数据库 视图
最后更新:2019年12月26日

iplaybit

点赞
< 上一篇
下一篇 >

文章评论

取消回复
最新 热点 随机
最新 热点 随机
Steam内存测试工具 SPDK详解 Hadoop之HDFS优缺点、设计原理、框架 tmpfs总结 当64核遇上PCIe 4.0 超级算力是这样建成的 Edge for Linux开发者预览将至 WSL子系统可运行带GUI的Linux应用程序
Intel 10nm 14核心至强曝光:同频性能暴涨54% DML操作出现交集的情况 rp_filter及Linux下多网卡接收多播的问题 NetApp Filer: maxdirsize rhel7 关闭透明大页 理解Linux系统中的load average
一起来了解为双屏设备而生的Windows 10X系统
标签聚合
AMD 数据库 linux redo 文件系统 oracle docker hp netapp intel cpu 3par 操作系统 windows san 存储

COPYRIGHT © 2020 iplaybit. ALL RIGHTS RESERVED.

京ICP备18020432号-1