Oracle认证辅导:Oracle动态视图Oracle认证考试
文章作者 100test 发表时间 2009:12:24 16:46:16
来源 100Test.Com百考试题网
"tb42" class="mar10">
在oracle运维的过程中,经常会使用到一些以V$开头的动态视图,比如V$session, 有一次偶然看到有人用V_$session, 初以为别人写错了,没想到desc v_$session以后能看到和v$session一样的结构,再以后又发现以gv$开头的视图等等。趁这次在一台Linux系统上装oracle的机会,终于弄清楚了这些动态视图与相应表之间的关系。
这些都是由oracle自己管理的数据结构,得从v$fixed_table入手:
[oracle@3857 admin]$ sqlplus sys/sys@archdw as sysdba
SQL*Plus: Release 11.2.0.1.0 Production on Mon Dec 14 11:27:20 2009
Copyright (c) 1982, 2009, Oracle. All rights reserved.
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 – Production
With the Partitioning, OLAP, Data Mining and Real Application Testing options
SQL>. desc v$fixed_table.
Name Null? Type
—————————————– ——– —————————-
NAME VARCHAR2(30)
OBJECT_ID NUMBER
TYPE VARCHAR2(5)
TABLE_NUM NUMBER
SQL>. 0select * from v$fixed_table
NAME OBJECT_ID TYPE TABLE_NUM
—————————— ———- —– ———-
X$KQFTA 4294950912 TABLE 0
X$KQFVI 4294950913 TABLE 1
GV$PROCESS 4294951256 VIEW 65537
V$PROCESS 4294950917 VIEW 65537
GV$BGPROCESS 4294951257 VIEW 65537
………………………………………
从上面可以看到GV$与V$是视图,X$是表。那它们之间是什么关系呢?从另一个视图v$fixed_view_definition中得到如下信息(以v$fixed_table为例):
SQL>. set linesize 100
SQL>. col view_name for a15
SQL>. col view_definition for a80
SQL>. 0select * from v$fixed_view_definition where view_name=’V$FIXED_TABLE’.