v$datafile毕竟查的那张基表呢?

v$datafile到底查的那张基表呢???今天查了一下数据字典,发现V$DATAFILE 是V_$DATAFILE的同义词,故接着去查

v$datafile到底查的那张基表呢???
今天查了一下数据字典,发现V$DATAFILE 是V_$DATAFILE的同义词,故接着去查V_$DATAFILE视图,但发现在视图中又是查询v$datafile,很纠结数据文件的数据来自哪些基表,望大神指点一二   oracle数据字典 v$datafile oracle基表
[解决办法]
set autot traceo
select * from v$datafile;
Execution Plan
----------------------
Plan hash value: 2174225242

------------------------------------------------------------

[解决办法]
 Id  
[解决办法]
 Operation                    
[解决办法]
 Name            
[解决办法]
 Rows  
[解决办法]
 Bytes 
[解决办法]
 Cost (%CPU)
[解决办法]
 Time     
[解决办法]

------------------------------------------------------------

[解决办法]
   0 
[解决办法]
 SELECT STATEMENT             
[解决办法]
                 
[解决办法]
     1 
[解决办法]
   858 
[解决办法]
     1 (100)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
   1 
[解决办法]
  VIEW                        
[解决办法]
 GV$DATAFILE     
[解决办法]
     1 
[解决办法]
   858 
------解决方案--------------------


     1 (100)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
   2 
[解决办法]
   SORT ORDER BY              
[解决办法]
                 
[解决办法]
     1 
[解决办法]
  1027 
[解决办法]
     1 (100)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
   3 
[解决办法]
    NESTED LOOPS              
[解决办法]
                 
[解决办法]
     1 
[解决办法]
  1027 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
   4 
[解决办法]
     NESTED LOOPS             
[解决办法]
                 
[解决办法]
     1 
[解决办法]
   717 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
   5 
------解决方案--------------------


      NESTED LOOPS            
[解决办法]
                 
[解决办法]
     1 
[解决办法]
   371 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
*  6 
[解决办法]
       FIXED TABLE FULL       
[解决办法]
 X$KCCFN         
[解决办法]
     1 
[解决办法]
   323 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
*  7 
[解决办法]
       FIXED TABLE FIXED INDEX
[解决办法]
 X$KCVFH (ind:1) 
[解决办法]
     1 
[解决办法]
    48 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]


[解决办法]
*  8 
[解决办法]
      FIXED TABLE FIXED INDEX 
[解决办法]
 X$KCCFE (ind:1) 
[解决办法]
     1 
[解决办法]
   346 
[解决办法]
     0   (0)


[解决办法]
 00:00:01 
[解决办法]


[解决办法]
*  9 
[解决办法]
     FIXED TABLE FULL         
[解决办法]
 X$KCCFN         
[解决办法]
     1 
[解决办法]
   310 
[解决办法]
     0   (0)
[解决办法]
 00:00:01 
[解决办法]

------------------------------------------------------------

[解决办法]
追踪一下:
V$DATAFILE →→ GV$DATAFILE →→ x$kccfe  x$kccfn  x$kcvfh 

那么、大概v$datafile 是来自 x$kccfe  x$kccfn  x$kcvfh  这三个基表的

过程如下:

idle> select view_definition from v$fixed_view_definition where view_name='V$DATAFILE';

VIEW_DEFINITION
----------------------------------------------------------------
select  FILE# , CREATION_CHANGE# , CREATION_TIME , TS# , RFILE# , STATUS , ENABLED , CHECKPOINT_CHAN
GE# , CHECKPOINT_TIME, UNRECOVERABLE_CHANGE#, UNRECOVERABLE_TIME, LAST_CHANGE# , LAST_TIME , OFFLINE
_CHANGE# , ONLINE_CHANGE# , ONLINE_TIME , BYTES , BLOCKS , CREATE_BYTES , BLOCK_SIZE , NAME , PLUGGE
D_IN , BLOCK1_OFFSET , AUX_NAME , FIRST_NONLOGGED_SCN, FIRST_NONLOGGED_TIME from GV$DATAFILE where i
nst_id = USERENV('Instance')


idle> select view_definition from v$fixed_view_definition where view_name='GV$DATAFILE';

VIEW_DEFINITION
----------------------------------------------------------------
select /*+ rule */ fe.inst_id,fe.fenum,to_number(fe.fecrc_scn), to_date(fe.fecrc_tim,'MM/DD/RR HH24:
MI:SS','NLS_CALENDAR=Gregorian'), fe.fetsn,fe.ferfn, decode(fe.fetsn,0,decode(bitand(fe.festa,2),0,'
SYSOFF','SYSTEM'),   decode(bitand(fe.festa,18),0,'OFFLINE',2,'ONLINE','RECOVER')), decode(fe.fedor,
2,'READ ONLY',   decode(bitand(fe.festa, 12),     0,'DISABLED',4,'READ ONLY',12,'READ WRITE','UNKNOW
N')), to_number(fe.fecps), to_date(fe.fecpt,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), to_numb
er(fe.feurs), to_date(fe.feurt,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian'), to_number(fe.fests),
 decode(fe.fests,NULL,to_date(NULL),  to_date(fe.festt,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian
')), to_number(fe.feofs),to_number(fe.feonc_scn), to_date(fe.feonc_tim,'MM/DD/RR HH24:MI:SS','NLS_CA


LENDAR=Gregorian'), fh.fhfsz*fe.febsz,fh.fhfsz,fe.fecsz*fe.febsz,fe.febsz,fn.fnnam, fe.fefdb,fn.fnbo
f,                                              decode(fe.fepax, 0, 'UNKNOWN', 65535, 'NONE', fnaux.
fnnam),     to_number(fh.fhfirstunrecscn),                                  to_date(fh.fhfirstunrect
ime,'MM/DD/RR HH24:MI:SS','NLS_CALENDAR=Gregorian')  from x$kccfe fe, x$kccfn fn, x$kccfn fnaux, x$k
cvfh fh          where                                                               ((fe.fepax!=655
35 and fe.fepax!=0 and fe.fepax=fnaux.fnnum)              or   ((fe.fepax=65535 or fe.fepax=0) and f
e.fenum=fnaux.fnfno                      and fnaux.fntyp=4 and fnaux.fnnam is not null and
                  bitand(fnaux.fnflg, 4) != 4                                                  and f
e.fefnh=fnaux.fnnum))                                             and fn.fnfno=fe.fenum and fn.fnfno
=fh.hxfil and fe.fefnh=fn.fnnum            and fe.fedup!=0 and fn.fntyp=4 and fn.fnnam is not null
and bitand(fn.fnflg, 4) != 4