Oracle内存结构中Process Memory分析
2007-05-12 12:25:11 来源:WEB开发网The Process Memory,除了SGA(System Global Area)之外,Oracle进程还使用下面三个全局区:
The Process Global Area (PGA);
The User Global Area (UGA);
The Call Global Area (CGA)。
很多人都搞不清楚PGA和UGA两者之间的区别,实际上两者之间的区别跟一个进程和一个会话之间的区别是类似的。尽管说进程和会话之间一般都是一对一的关系,但实际上比这个更复杂。一个很明显的情况是MTS配置,会话往往会比进程多得多。在这种配置下,每一个进程会有一个PGA,每一个会话会有一个UGA。PGA所包含的信息跟会话是无任何关联的,而UGA包含的信息是以特定的会话为基础的。
The PGA:
进程全局区(PGA)即可以理解为Process Global Area,也可以理解为Program Global Area。它的内存段是在进程私有区(Process Private Memory)而不是在共享区(Shared Memory)。它是个全局区意味着它包含了所有代码有可能进入的全局变量和数据结构,但是它是不被所有进程共享的。每个Oracle的服务器进程都包含有属于自己的PGA,它只包含了本进程的相关特定信息。PGA中的结构不需要由latches来保护,因为其它的进程是不能进入到这里面来访问的。
PGA包含的是有关进程正在使用的操作系统资源信息以及进程的状态信息,而其它的进程所使用的Oracle的共享资源是在SGA中。PGA是私有的而不是共享的,这个机制是有必要的,因为当进程死掉后可以把这些资源清除和释放掉。
PGA包含两个主要区域:Fixed PGA和Variable PGA或称为PGA Heap。 Fixed PGA的作用跟Fixed SGA是类似的,都包含原子变量(不可分的),小的数据结构和指向Variable PGA的指针。
Variable PGA是一个堆。它的Chunks可以从Fixed Table X$KSMPP查看得到,这个表的结构跟前面有提到的X$KSMSP是相同的。PGA HEAP包含了一些有关Fixed Table的永久性内存,它跟某些参数的设置有依赖关系。这些参数包含DB_FILES,LOG_FILES,CONTROL_FILES。
- ››oracle 恢复误删除的表和误更新的表
- ››Oracle分页查询排序数据重复问题
- ››Oracle创建dblink报错:ORA-01017、ORA-02063解决
- ››Oracle 提高SQL执行效率的方法
- ››Oracle 动态查询,EXECUTE IMMEDIATE select into...
- ››Oracle 11g必须开启的服务及服务详细介绍
- ››oracle性能34条优化技巧
- ››oracle数据库生成随机数的函数
- ››Oracle 数据库表空间容量调整脚本
- ››oracle单库彻底删除干净的方法
- ››Oracle创建表空间、创建用户以及授权、查看权限
- ››oracle 中 UPDATE nowait 的使用方法
更多精彩
赞助商链接