以v_$mystat和v$mystat具体说明
grant语句中使用的v_$mystat和test用户访问的v$mystat不一样
这里说一下 v$mystat 和 v_$mystat 的区别
初始状态下
SQL>  conn test/test
Connected.
SQL> select sid from v$mystat where rownum=1;
select sid from v$mystat where rownum=1
*
ERROR at line 1:
ORA-00942: table or view does not exist
没有赋权限的情况下, 提示访问的表或者视图不存在,当sys用户给test用户授权后
SQL> conn / as sysdba
Connected.
SQL> grant select on v_$mystat to test;
Grant succeeded.
SQL> conn test/test
Connected.
SQL> select sid from v$mystat where rownum=1;
SID
----------
15
test用户就可以访问了,大家注意到上面两个语句中执行的对象并不一样,要访问的是v$mystat,而授权的是v_$mystat,如果我们直接给v$mystat授权
SQL> grant select on v$mystat to test;
grant select on v$mystat to test
*
ERROR at line 1:
ORA-02030: can only select from fixed tables/views
说明这里授权的v$mystat不是固有视图,不能直接授权,实际这里test访问的v$mystat是一个同义词,sys不能给同义词授权,只能授权给固定的表或视图,同义词在Oracle中可以理解为一个对象的别名,有私有和共用之分,每个用户都可以给自己的对象创建自己的同义词,这样创建的同义词只能自己使用。
 
查询V$MYSTAT的说明
SQL>  select * from dict where table_name='V$MYSTAT';

TABLE_NAME                     COMMENTS
------------------------------ ------------------------------
V$MYSTAT Synonym for V_$MYSTAT
V$MYSTAT是一个同义词是V_$MYSTAT的同义词,再在库中的同义词数据字典中查找这个同义词
SQL> select * from dba_synonyms where SYNONYM_NAME='V$MYSTAT';

OWNER                          SYNONYM_NAME                    TABLE_OWNER                    TABLE_NAME                 DB_LINK
-------------------------------------------------------------------------------------------------------------- ------------------------------------------------------------ -----------------
PUBLIC V$MYSTAT SYS V_$MYSTAT
 
说明V$MYSTAT是SYS用户的V_$MYSTAT视图的共用同义词,查询V_$MYSTAT视图的定义
SQL> select OWNER,VIEW_NAME,TEXT from dba_views where view_name = 'V_$MYSTAT';

OWNER                          VIEW_NAME                           TEXT
------------------------------ ------------------------------
SYS V_$MYSTAT select "SID","STATISTIC#","VALUE" from v$mystat
也可以通过dbms_metadata.get_ddl查询V_$MYSTAT视图的定义,dbms_metadata.get_ddl返回的是long类型的结果,long型数据为可变长字符串,最大长度限制是2GB,sqlplus处理long型数据非常困难,因为里面存的数据一般都很长,sqlplus显示时一般只能显示出来一部分,所以想显示完整的long型数据,要先给sqlplus环境设置LONG参数
 
SQL> SET LONG 9999
SQL> select dbms_metadata.get_ddl('VIEW','V_$MYSTAT') from dual; DBMS_METADATA.GET_DDL('VIEW','V_$MYSTAT')
-------------------------------------------------------------------------------- CREATE OR REPLACE FORCE VIEW "SYS"."V_$MYSTAT" ("SID", "STATISTIC#", "VALUE")
AS
select "SID","STATISTIC#","VALUE" from v$mystat
查询V$MYSTAT的定义
SQL> select * from v$fixed_view_definition where VIEW_NAME = 'V$MYSTAT';

VIEW_NAME                      VIEW_DEFINITION
------------------------------ ------------------------------------------------------------------------------------------
V$MYSTAT select SID , STATISTIC# , VALUE from GV$MYSTAT where inst_id = USERENV('Instance')
说明有一个固定视图也叫V$MYSTAT它来源于GV$MYSTAT,经过查找和分析,GV$MYSTAT同样有一个同名的PUBLIC同义词和一个固定视图,而且也有一个关联的GV_$MYSTAT视图PUBLIC同义词,V$MYSTAT来自于GV_$MYSTAT,而GV_$MYSTAT又产生自固定视图GV$MYSTAT
再看一下固定视图GV$MYSTAT的定义
SQL> select * from v$fixed_view_definition where VIEW_NAME = 'GV$MYSTAT';

VIEW_NAME                      VIEW_DEFINITION
------------------------------ ------------------------------------------------------------------------------------------
GV$MYSTAT select inst_id,ksusenum,ksusestn,ksusestv from x$ksumysta where bitand(ksspaflg,1)!=0 and
bitand(ksuseflg,1)!=0 and ksusestn<(select ksusgstl from x$ksusgif)
说明固定视图GV$MYSTAT来自于x$ksumysta,这里x$ksumysta表中的信息是Oracle实例当前会话的状态信息,可以从v$fixed_table继续查到x$ksumysta和结果中出现的x$ksusgif的信息
SQL> SELECT * FROM v$fixed_table WHERE NAME in ('X$KSUMYSTA','X$KSUSGIF');

NAME                            OBJECT_ID TYPE   TABLE_NUM
------------------------------ ---------- ----- ----------
X$KSUSGIF 4294951930 TABLE 42
X$KSUMYSTA 4294951106 TABLE 44
这是固定表,不用再继续找了,一般用户使用的V$MYSTAT是一个共用同义词,它的来源渠道追溯过程是:V$MYSTAT共用同义词,来自于V_$MYSTAT视图、V$MYSTAT固定视图、GV$MYSTAT、固定表X$KSUMYSTA,所以V$MYSTAT最终来自于固定表X$KSUMYSTA。
 
前面查询中用到的dict实际也是个共用同义词,SYS用户的DICTIONARY视图有两个共用同义词DICT和DICTIONARY,我们使用了DICT同义词,DICTIONARY是一个数据字典,官方描述是:DICTIONARY contains descriptions of data dictionary tables and views. 就是DICTIONARY是个数据字典,内容中包含Oracle系统中所有数据字典,包括所有数据字典表和数据字典视图的名称和说明

Oracle v_$和v$的解释的更多相关文章

  1. oracle中imp命令具体解释

    oracle中imp命令具体解释 Oracle的导入有用程序(Import utility)同意从数据库提取数据,而且将数据写入操作系统文件.imp使用的基本格式:imp[username[/pass ...

  2. oracle在imp订单具体解释

    oracle在imp订单具体解释 Oracle导入实用程序(Import utility)同意从数据库中提取数据,和写入数据到一个操作系统文件项目.imp所用的基本格式:imp[username[/p ...

  3. INS-20802 Oracle Cluster Verification Utility failed解释说明

    背景:安装RAC,安装GI集群管理软件时,在最后快结束时,总是报如上INS-错误 #官方文档:error 说明;字符串解析失败 INS-20802: string failed. Cause: The ...

  4. Oracle Explain Plan,hint解释与示例

    Oracle 专业dba博客:http://blog.csdn.net/tianlesoftware Hint 是Oracle 提供的一种SQL语法,它允许用户在SQL语句中插入相关的语法,从而影响S ...

  5. Oracle imp exp命令具体解释

    怎样在oracle中导入dmp数据库文件? oracle数据导入导出imp/exp就相当于oracle数据还原与备份.exp命令能够把数据从远程数据库server导出到本地的dmp文件,imp命令能够 ...

  6. Oracle SQL Developer中查看解释计划Explain Plan的两种方法

    方法一: 比如要查看解释计划的SQL是:select * from hy_emp 那么在输入窗口输入: EXPLAIN PLAN FOR select * from hy_emp 之后执行,输出窗口会 ...

  7. oracle系统视图V$

    --数据字典表select * from v$fixed_table;select * from v$fixed_view_definition;select * from dictionary; - ...

  8. Winform实现Shp-栅格图形文件的读取与显示(外加shp转WKB格式存入oracle)附源码

    前言:上学期GIS空间数据库课程设计时,老师让实现Shp-栅格图形文件的读取与显示,外加shp转WKB格式存入oracle,不使用第三方类库,花了一天时间在网上找了一些资料,实现了一个简单的栅格图形文 ...

  9. Oracle 11gR2 Database UNDO表空间使用率居高不下-转载

    客户的数据库是Oracle Database 11.2.0.3.0 for AIX 6.1 64bit的单机数据库.客户查询DBA_FREE_SPACE发现UNDO表空间的使用率高达98%以上.客户的 ...

随机推荐

  1. H3C 衡量路由协议的主要指标

  2. intellij 创建一个文件自动就add到git了,这个怎么取消

    解决方案一: 展开全部 打开IDEA->File->Settings->VersionControl->Confirmation 上面有个When files are crea ...

  3. js 设置当前时间的后24小时、后一小时等相对时间

    不管是设置相对当前时间有多久时间差的时间,思路:先获取当前时间的时间戳,再根据需求加减时间获得新的时间戳,然后取年月日与时分秒.实例: // 设置默认时间——先转化为毫秒数,加上 24 小时的毫秒数, ...

  4. H3CFTP操作示例

  5. java.lang.IllegalArgumentException: attempt to create saveOrUpdate event with null entity

    今天想把ssh整合的代码跑起来,控制台就一直在报错,搞了半天!!! Hibernate: select computer0_.computerId as computer1_0_, computer0 ...

  6. 【19.05%】【codeforces 680D】Bear and Tower of Cubes

    time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...

  7. C# dotnet 获取整个局域网的 ip 地址

    局域网可以使用的 IP 地址有很多,我写了一段代码用来枚举所有可以用的 ip 地址 小伙伴都知道,局域网可以使用的 IP 范围如下 A类地址:10.0.0.0 - 10.255.255.255 B类地 ...

  8. Consul etcd ZooKeeper euerka 对比

    这里就平时经常用到的服务发现的产品进行下特性的对比,首先看下结论: Feature Consul zookeeper etcd euerka 服务健康检查 服务状态,内存,硬盘等 (弱)长连接,kee ...

  9. MYSQL 查询日期最大的那条记录

    首先把官网示例拿出来: 连接查询比子查询性能更好 3.6.4 The Rows Holding the Group-wise Maximum of a Certain Column Task: For ...

  10. Google 开源的 Python 命令行库:深入 fire(一)

    作者:HelloGitHub-Prodesire HelloGitHub 的<讲解开源项目>系列,项目地址:https://github.com/HelloGitHub-Team/Arti ...