UGA是为session分配的内存区,存储着Oracle session状态等信息,包括登陆信息和其他session信息
UGA示意图 :
当SQL代码包( PL/SQL package)加载进内存时,包规范(package Specification)存在UGA中,包规范中存储着这个代码包下的变量,代码包的另一部分是包体(package body),当包体变量改变时,包规范随之需要改变. 在一个session生命周期中,包规范是唯一且不变的.
OLAP页面池在UGA中,主要管理OLAP数据页,可以视作数据块. 在OLAP session开始时分配页池,session结束时释放页池. 当用户查询多维对象时,OLAP将自动打开.
UGA必须在session生命周期中存在,因此在通过共享服务器连接时,UGA不能存在PGA中,因为PGA数据单个进程.所以当用户使用共享服务器访问时,UGA存在与SGA中;当使用专用服务器时,UGA存在与PGA中
共享服务器: 允许多个客户端访问少量的服务器进程
专用服务器 : 每个服务器进程只属于单个客户端