WEB开发网
开发学院数据库Oracle Oracle内存结构中Process Memory分析 阅读

Oracle内存结构中Process Memory分析

 2007-05-12 12:25:11 来源:WEB开发网   
核心提示: The UGA: UGA(User Global Area)包含的是特定会话的信息,有如下一些: 所打开游标的持续和运行时间内的区域; 包的状态信息,特定的变量; Java会话状态; 可以用的ROLES; 被ENABLE的跟踪事件; 起作用的NLS参数设置; 打开的DBLINK; 会话的入

The UGA:

UGA(User Global Area)包含的是特定会话的信息,有如下一些:

所打开游标的持续和运行时间内的区域;

包的状态信息,特定的变量;

Java会话状态;

可以用的ROLES;

被ENABLE的跟踪事件;

起作用的NLS参数设置;

打开的DBLINK;

会话的入口控制。

跟PGA一样,UGA也由两区组成:Fixed UGA和Variable UGA,也称为UGA HEAP。 Fixed UGA包含了大约70个原子变量,小的数据结构和指向Variable UGA的指针。

UGA HEAP中的Chunks可以从它们自己的会话中通过查看表X$KSMUP获得相关信息,这个表的结构跟X$KSMSP是一样的。UGA HEAP包含了一些有关fixed tables的永久性内存段,跟一些参数的设置有依赖关系。这些参数有OPEN_CURSORS,OPEN_LINKS,和MAX_ENABLE_ROLES。

UGA在内存中的位置依赖于会话的配置方式。如果会话连接的配置方式是专用服务器模式(DDS)即是一个会话对应一个进程,则UGA是放在PGA中的。在PGA中,Fixed UGA是其中的一个Chunk,而UGA HEAP是PGA的一个子堆(Subheap)。如果会话连接是配置为共享服务器模式(MTS), Fixed UGA是SHARED POOL中的一个Chunk,而UGA HEAP则是SHARED POOL中的子堆(Subheap)

The CGA:

跟其它的全局区不同,Call Global Area是短暂性存在的。它只有在调用数据期间存在,一般是在对实例的最低级别的调用时才需要CGA,如下:

分析一个SQL语句;

执行一个SQL语句;

取出一个SELECT语句的输出。

一个单独的CGA在递归调用时是需要的。在SQL语句的分析过程中,对数据字典信息的递归调用是需要的,因为要对SQL语句进行语法分析,还有在语句的优化期间要计算执行计划。执行PL/SQL块时在处理SQL语句的执行时也是需要递归调用的,在DML语句的执行时要处理触发器执行也是需要递归调用的。

上一页  1 2 3 4  下一页

Tags:Oracle 内存 结构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接