本帖最后由 vcmango15 于 2014-07-15 09:32:27 编辑

解决方案 »

  1.   

    动态性能视图来自于内存和控制文件
    v$instance来自于内存
      

  2.   

    谢谢您的回答,不过还有一点问题。我们知道,对于普通表来说,创建一个表,然后表的定义就存放在数据字典里了,接着插入数据,之后我们用select语句可以访问到表进而访问到数据。对于动态性能视图,系统用catalog.sql创建好了之后存放在哪里?是不是也存放在数据字典(数据文件)里?如果定义在内存里的话,是不是有某个机制,在实例启动之后把动态性能视图的定义加载在内存里,从而使我们可以用select查询相关系统信息?
      

  3.   

    catalog.sql创建的是数据字典。动态性能视图来自于内存结构中的虚拟表,和参数文件以及控制文件有关,并不储存在数据库中
      

  4.   

    也就是说,依据参数文件及控制文件,在实例启动的时候,相应的动态性能视图的定义已经在内存中建好了,等我们执行select的时候,就直接根据相应的x$表来取数据,这样理解对吧?因为我想,from某个视图的话,这个视图应该是(临时)存在的。
      

  5.   

    Dynamic performance views are based on virtual tables built from database memory structures. Thus, they are not conventional tables stored in the database.视图有它的基表,而动态性能视图的基表是内存结构中的虚拟表,并不是真正意义上的表。实例启动的时候,这些基表以及动态性能视图的定义都在内存中存在了