龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 数据库类 > Oracle 技术 >

Oracle 动态视图与相对应的表之间的关系

时间:2011-04-12 23:18来源:未知 作者:admin 点击:
分享到:
我们大家都知道在 Oracle 数据库运行的过程中,我们经常会使用一些关于V$开头的Oracle 动态视图,例如V$session, 在一次偶然的情况下有人用的是V_$session, 一开始以为是别人写错了,没想到

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

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

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

  1. [Oracle@3857 admin]$ sqlplus sys/sys@archdw as sysdba  
  2. SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 14 11:27:20 2009  
  3. Copyright (c) 1982, 2009, Oracle. All rights reserved.  
  4. Connected to:  
  5. Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production  
  6. With the Partitioning, OLAP, Data Mining and Real Application Testing options  
  7. SQL> desc v$fixed_table;  
  8. Name Null? Type  
  9. —————————————– ——– —————————-  
  10. NAME VARCHAR2(30)  
  11. OBJECT_ID NUMBER  
  12. TYPE VARCHAR2(5)  
  13. TABLE_NUM NUMBER  
  14. SQL> select * from v$fixed_table  
  15. NAME OBJECT_ID TYPE TABLE_NUM  
  16. —————————— ———- —– ———-  
  17. X$KQFTA 4294950912 TABLE 0  
  18. X$KQFVI 4294950913 TABLE 1  
  19. GV$PROCESS 4294951256 VIEW 65537  
  20. V$PROCESS 4294950917 VIEW 65537  
  21. GV$BGPROCESS 4294951257 VIEW 65537  
  22. ………………………………………  

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

  1. SQL> set linesize 100  
  2. SQL> col view_name for a15  
  3. SQL> col view_definition for a80  
  4. SQL> select * from v$fixed_view_definition where view_name=’V$FIXED_TABLE’;  
  5. VIEW_NAME VIEW_DEFINITION   

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

精彩图集

赞助商链接