参考:http://www.itpub.net/thread-1284858-1-1.html

1.ORACLE 先创建的x$ 表即RDBMS的内部表

2.然后在X$表的基础上创建了GV$ 视图。
   GV$视图是为了满足OPS环境的需要即集群环境的需要

3.接着根据GV$视图创建了 V$视图,其实就是加了一个
   instance number的过滤条件。基本每个v$视图都对应一个GV$视图。

4.然后ORACLE又根据GV$视图创建了GV_$视图。随即创建了V_$视图。
 (注意是有区别的,下划线__)

5.然后根据V_$视图创建了同义词。

因此我们平时访问的动态性能视图都是同义词。
这些工作其实是创建数据库的时候由一个脚本来实现的,$ORACLE_HOME/rdbms/admin/catalog.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;
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;

通过v_$视图,ORACLE把用户跟v$视图隔离开了。

以v$instance为例。

1.查询dba_objects 知,v$instance是同义词
   SELECT * FROM Dba_OBJECTS WHERE OBJECT_name='V$INSTANCE'

2.查询dba_synonyms,可知道他是V_$INSTANCE表的同义词
   SELECT * FROM dba_synonyms WHERE synonym_name='V$INSTANCE'

3.查看v_$instance的创建语句,

SELECT * FROM dba_views
   WHERE view_name=upper('V_$INSTANCE')
   发现它是有v$instance创建的.

4.查看v$instance创建语句。
   SELECT * FROM v$fixed_view_definition WHERE view_name =upper('v$instance')

select INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , VERSION ,
            STARTUP_TIME , STATUS , PARALLEL , THREAD# , ARCHIVER ,
            LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, DATABASE_STATUS,
            INSTANCE_ROLE, ACTIVE_STATE, BLOCKED
     from GV$INSTANCE
   where inst_id = USERENV('Instance')

发现它是根据gv$instance创建的,只是加了一个inst_id的过滤条件。

5.继续查看gv$instance的创建语句
    SELECT * FROM v$fixed_view_definition WHERE view_name =upper('v$instance')

发现它是由X$内部表创建的。
    select ks.inst_id,ksuxsins,ksuxssid,ksuxshst,ksuxsver,ksuxstim,
            decode(ksuxssts,0,'STARTED',1,'MOUNTED',2,'OPEN',3,'OPEN MIGRATE','UNKNOWN'),
            decode(ksuxsshr,0,'NO',1,'YES',2,NULL),ksuxsthr,
            decode(ksuxsarc,0,'STOPPED',1,'STARTED','FAILED'),
            decode(ksuxslsw,0,NULL,2,'ARCHIVE LOG',3,'CLEAR LOG',4,'CHECKPOINT',5,'REDO GENERATION'),
            decode(ksuxsdba,0,'ALLOWED','RESTRICTED'),decode(ksuxsshp,0,'NO','YES'),
            decode(kvitval,0,'ACTIVE',2147483647,'SUSPENDED','INSTANCE RECOVERY'),
            decode(ksuxsrol,1,'PRIMARY_INSTANCE',2,'SECONDARY_INSTANCE','UNKNOWN'),
            decode(qui_state,0,'NORMAL',1,'QUIESCING',2,'QUIESCED','UNKNOWN'),
            decode(bitand(ksuxsdst, 1), 0, 'NO', 1, 'YES', 'NO')
     from x$ksuxsinst ks, x$kvit kv, x$quiesce qu
   where kvittag = 'kcbwst'

select INSTANCE_NUMBER , INSTANCE_NAME , HOST_NAME , VERSION ,
            STARTUP_TIME , STATUS , PARALLEL , THREAD# , ARCHIVER ,
            LOG_SWITCH_WAIT , LOGINS , SHUTDOWN_PENDING, DATABASE_STATUS,
            INSTANCE_ROLE, ACTIVE_STATE, BLOCKED
    from GV$INSTANCE
  where inst_id = USERENV('Instance')

v$instance如何生成的更多相关文章

  1. 【ORM】--FluentNHibernate之AutoMapping详解

           上篇文章详细讨论了FluentNHibernate的基本映射的使用方法,它的映射基本用法是跟NHibernate完全一样的,首先要创建数据库链接配置文件,然后编写Table的Mappin ...

  2. C#中成员初始化顺序

    http://blog.csdn.net/huangcailian/article/details/25958967 一.成员初始化整体顺序 1.成员赋值初始化先于构造函数: 2.成员赋值初始先从子类 ...

  3. 序列化和反序列化的几种方式(DataContractSerializer)(二)

    DataContractSerializer 类 使用提供的数据协定,将类型实例序列化和反序列化为 XML 流或文档. 无法继承此类. 命名空间: System.Runtime.Serializati ...

  4. Linux/Unix shell 自动发送AWR report(二)

    观察Oracle数据库性能,Oracle自带的awr 功能为我们提供了一个近乎完美的解决方案,通过awr特性我们可以随时从数据库提取awr报告.不过awrrpt.sql脚本执行时需要我们提供一些交互信 ...

  5. 自定义Template,向其中添加新的panel

    参考网站:https://www.devexpress.com/Support/Center/Example/Details/E2690 思路: 新建一个DefaultTemplate:       ...

  6. Django(九)上:ModelForm操作

    一.内容回顾 Model - 数据库操作 - 验证 class A(MOdel): user = email = pwd = Form - class LoginForm(Form): email = ...

  7. python 全栈开发,Day116(可迭代对象,type创建动态类,偏函数,面向对象的封装,获取外键数据,组合搜索,领域驱动设计(DDD))

    昨日内容回顾 1. 三个类 ChangeList,封装列表页面需要的所有数据. StarkConfig,生成URL和视图对应关系 + 默认配置 AdminSite,用于保存 数据库类 和 处理该类的对 ...

  8. python 全栈开发,Day115(urlencode,批量操作,快速搜索,保留原搜索条件,自定义分页,拆分代码)

    今日内容前戏 静态字段和字段 先来看下面一段代码 class Foo: x = 1 # 类变量.静态字段.静态属性 def __init__(self): y = 6 # 实例变量.字段.对象属性 # ...

  9. python 全栈开发,Day114(装饰器,排序规则,显示列,添加按钮,定制ModelForm,自定义列表页面,自定制URL)

    一.装饰器 装饰器本质上就是一个python函数,他可以让其他函数在不需要做任何代码变动的前提下,增加额外的功能,装饰器的返回值也是一个函数对象. 装饰器的应用场景:比如插入日志,性能测试,事务处理, ...

随机推荐

  1. UNIX网络编程读书笔记:I/O模型(阻塞、非阻塞、I/O复用、信号驱动、异步)

    I/O模型 UNIX下可用的5种I/O模型: (1)阻塞I/O (2)非阻塞I/O (3)I/O复用(select和poll) (4)信号驱动I/O(SIGIO) (5)异步I/O 对于一个套接口上的 ...

  2. Android数据存储:File

    Android数据存储之File Files:它通过FileInputStream和FileOuputStream对文件进行操作.但是在Android中,文件是一个应用程序私有的,一个应用程序无法读写 ...

  3. window 连linux

    https://blog.csdn.net/ruanjianruanjianruan/article/details/46954681 https://blog.csdn.net/u013754317 ...

  4. 保存 laravel model 而不更新 timestamps 的方法

    $product = Product::find(1); $product->view_count += 1; $product->timestamps = false; $product ...

  5. hdu3530 双单调队列的维护

    单调队列有部分堆的功能,但其只能维护给定区间中比v大的值或者比v小的值,且其一般存储元素的下标. 思路:两个单调队列维护最大值与最小值的下标,如果区间的最大值最小值之差大于给定范围,则选择队首靠左的删 ...

  6. 超实用!!!使用IDEA插件Alibaba Cloud Toolkit工具一键部署本地应用到ECS服务器

    最近看到阿里云发布了一款名为 Alibaba Cloud Toolkit 的插件,可以帮助开发者高效开发并部署适合在云端运行的应用,瞬间击中了我的小心脏,这个对于个人开发者来说超级棒啊,终于不需要再手 ...

  7. 练习题|python常用模块

    re模块练习 1.验证手机号是否合法 import re phone_pat = re.compile('^(13\d|14[5|7]\d|15\d|166|17[3|6|7]|18\d)\d{8}$ ...

  8. hdu1573 X问题【中国剩余定理】

    <题目链接> X问题 Problem Description 求在小于等于N的正整数中有多少个X满足:X mod a[0] = b[0], X mod a[1] = b[1], X mod ...

  9. mac电脑对ntfs格式硬盘进行写操作(简单说就是向ntfs硬盘拷贝东西)

    使用mac电脑的童鞋应该都会遇到一个问题: 对ntfs格式的优盘或硬盘(移动硬盘默认ntfs)只能读不能写,也就是只能拷贝出数据,却没法拷贝数据到移动硬盘中. 下面是参考自网上的一种方法,无需第三方软 ...

  10. Linux系统之常用文件搜索命令

    (一)常用文件搜索命令 (1)which命令 (2)find命令 (3)locate (4)updatedb (5)grep (6)man (7)whatis (一)常用文件搜索命令 (1)which ...