当客户端向服务器发送连接请求,服务器监听到客户端的请求,在专用服务器模式下,会在服务器端衍生一个server process来代理客户的请求,server process进而向实例发起连接,创建会话,而PGA就为server process所分配和使用。
PGA,这P,或译之程序,或翻为私有,角度不同而已,通常,我们称之”程序全局区“。它的创建时期:
1)server process启动或创建时分配,原因?无他,唯PGA和server process是”一根绳上的两个蚂蚱“。相濡以沫,患难一共。
2)系统运行时,sort、hash join等操作也可能需要进一步的PGA分配
PGA为server process排他访问,故不存在latch争用。它包含了server process的数据和控制信息。通过C语言的运行时调用malloc()在本地分配,可动态扩缩。PGA是私有的而不是共享的,这个机制是有必要的,因为当进程死掉后可以把这些资源清除和释放掉.
oracle的应用程序或者用户的应用程序在执行时,都可能显示或者隐式地打开cursor,打开cursor就需要分配sql area,私有sql区在cursor打开时分配,关闭时释放,实际上,数据库的主要活动就是cursor的活动,简单说来,用户进程的任务执行和cursor的使用是PGA的主要消耗者。
用户体验最敏感的贡献就在于PGA。用户所发出的请求,执行时,是在pga中执行。若在pga中命中,则无须软解析或者硬解析,此时称为软软解析。pga中的游标指向buffer cache中的数据行。返回时,是一批批,而非一条条。
PGA可分固定PGA和可变PGA。可变PGA是一个内存堆,PGA的可变区实际上是我们最为关注的PGA部分。通过x$ksmpp可以查询可变PGA的分配和使用情况。它主要由:
a)会话内存:用于存放会话的登录信息以及其他相关信息
b)私有sql区
b1)永久区域:含绑定变量,这部分内存只有在cursor关闭时才会被释放
b2)sql work area:含sort区、hash区等,对于DML事务,sql执行完毕就释放该区域;对于select则是记录返回后或者查询取消时释放
c)游标和sql区域:这里的游标是一块内存,不是我们常指的“指针”
私有sql区的sql工作区太小会造成磁盘I/O,为均衡执行sql所需的内存与实际空间的分配,不得不将作业转换到临时表空间,因此,oracle将所得的sql工作区按大小分:
a)optimal size:sql工作区完全可以满足执行sql所需的内存
b)one-pass size:与临时表空间进行一次I/O
c)multi-pass size:与临时表空间进行多次I/O
当workload不大时,oracle倾向于为每个用户会话分配optimal size sql工作区.
UGA就是你的会话状态。你的会话总能访问这部分内存。UGA的位置取决你如何连接oracle。如果是专用服务器连接,UGA在PGA中创建;如果是共享服务器连接,UGA则在SGA中创建。所以,PGA包含进程内存,还可能包含UGA。
分享到:
相关推荐
PGA导致oracle内存泄露,经历1个月的时间,终于搞定该问题,对于学习ORACLE 内存泄露是一次比较好的总结。
oracle实例内存(SGA和PGA)调整
如何估算PGA,SGA的大小,配置数据库服务器的内存。
SGA+PGA最好不要超过总内存的70%,内存详细调整方案,供学习。
Oracle内存结构研究-PGA篇;PGA(Process Global Area),即程序全局区,一个进程的专用的内存区。
PGA411-Q1 器件是一款集成有激励器放大器和升压稳压器电源的旋转变压器数字转换器,能够激励和读取旋转变压器传感器上的正弦角和余弦角。凭借集成的激励器放大器和带保护的升压电源,PGA411-Q1 器件消除了对大多数...
oracle实例的内存(SGA和PGA)进行调整,优化数据库性
oracle的PGA内存HEAP 很不错的文档
oracle实例内存(SGA和PGA)分析与调整
基于msp430f247的256点fft程序,外部adcPGA113 采样,12864显示。
PGA_PGA自聚焦_PGA_ISAR_自聚焦.zip
根据系统类型、DB版本和OS内存自动计算Oralce建议的memory_target、SGA和PGA大小
The PGA2310 is a high-performance, stereo audio volume control designed for professional and high- end consumer audio systems. The ability to operate from ±15-V analog power supplies enables the PGA...
oracle SGA PGA UGA 内存的概念; UGA和PGA不是一回事; UGA包含了对Oracle共享服务器的会话信息。当oracle的服务采用共享服务器会话模式而没有配置大池时, UGA就位于使用的共享池中。
PGA_PGA自聚焦_PGA_ISAR_自聚焦_源码.zip
这是PGA2311或者PGA2310的单片机控制程序,不包含遥控部分,稍后我会上传上来带红外遥控的。
SAR成像的PGA自聚焦算法,一个很值得参考的程序,亲测可用
PGA2310
基于相位梯度法PGA的 Matlab 估计相位误差 估计多普勒中心
STM32单片机读写2通道带PGA16位ADC-AD7705软件例程源码,可以做为你的学习设计参考。 int main(void) { uint16_t adc1, adc2; /* 由于ST固件库的启动文件已经执行了CPU系统时钟的初始化,所以不必再次重复配置...