UGA由哪几部分组成和PGA上内存空间的分配与回收的方式

本文详细介绍了Oracle的UGA(User Global Area)的组成,包括Session Memory、Private SQL Area和Private PL/SQL Area,并探讨了在PGA中内存如何分配和回收。在手动和自动管理PGA的模式下,SQL工作区的内存使用和释放有不同处理方式,影响PGA内存的分配和使用。此外,文章还讨论了PGA内存的不同类别,如Freeable、SQL、PL/SQL等。
摘要由CSDN通过智能技术生成

一、UGA由哪几部分组成?

 


由上述图片可知,

一个会话里如果处理的是SQL语句,那么在shared pool中就有该SQL语句对应的Shared  Areas,该Shared  Areas的类型为Shared SQL  Areas,在该会话对应的进程对应的uga中,就有该SQL语句对应的Private Areas,该Private  Areas的类型为PrivateSQL Areas。当然由于当一个SQL语句执行完毕后它对应的PrivateSQL Area也会释放掉,又一个会话里同时只有一个SQL语句执行,所以该会话对应的进程对应的uga中始终最多只有一个Private SQL Area存在。

一个会话里如果处理的是 PL/SQL programunits,那么在shared pool中就有该 PL/SQL program units对应的Shared Areas,该Shared  Areas的类型为SharedPL/SQL  Areas,在该会话对应的进程对应的uga中,就有该SQL语句对应的Private Areas,该Private  Areas的类型为PrivatePL/SQL Areas。当然由于当一个PL/SQL program units执行完毕后它对应的Private SQL Area也会释放掉,又一个会话里同时只有一个PL/SQL program units执行,所以该会话对应的进程对应的uga中始终最多只有一个Private PL/SQL Areas存在。

由此可知,uga里必然包括session  memory,而private sqlarea这个部分是当有SQL语句运行时存在于uga里,PrivatePL/SQL Area也是如此

如果oracle还安装了OLAP组件,那么uga里也必有theOLAP pool。

uga组成部分结论的得出过程:

Pgauga分别包含哪些部分?

 

uga处于pga中(专用服务器模式)时,两者的分别包含哪些部分是否很清楚:uga全部处于pga中,uga包括session memory(记录会话信息)和私有sql区(包括the persistent area the runtime area(包括sql工作区和query  execution stateinformation(即记录SQL语句执行进度的部分)两部分)两部分)。

uga处于sga中(共享服务器模式)时,两者的分别包含哪些部分分别可理解为以下三种说法:

首先说明的是,按照oracle11gR2官方文档里的图示(http://docs.oracle.com/cd/E11882_01/server.112/e40540/memory.htm#i14490),sql工作区不包含在私有sql区的,uga就是图示中的session  memory。按照oracle10g官方文档的说法,sql工作区是包含在私有sql区的。

 

 

Memory Area

Dedicated Server

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值