欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

PGA

程序员文章站 2022-05-21 17:17:25
PGA全称为Program Global Area,即程序全局区 它是一块包含一个服务进程的数据和控制信息的内存区域,是 Oracle 在一个服务进程启动是创建的,是非共享的 一个Oracle进程拥有一个PGA内存区,一个 PGA也只能被拥有它的那个服务进程所访问,只有这个进程中的Oracle代码才 ......

 

pga全称为program global area,即程序全局区

它是一块包含一个服务进程的数据和控制信息的内存区域,是 oracle 在一个服务进程启动是创建的,是非共享的
一个oracle进程拥有一个pga内存区,一个 pga也只能被拥有它的那个服务进程所访问,只有这个进程中的oracle代码才能读写它
因此,pga中的结构是不需要latch保护的

可设置所有服务进程的pga内存总数受到实例分配的总体pga(aggregated pga)限制

在专有服务器(dedicated server)模式下, oracle会为每个会话启动一个oracle进程
在多线程服务(multi-thread server mts)模式下,由多个会话共享通一个oracle服务进程

pga中包含了关于进程使用到的操作系统资源的信息,以及一些关于进程状态的信息
而关于进程使用的oracle共享资源信息则是在sga中。这样做可以使在进程以外中止时,能够及时释放和清除这些资源

12c引入了新的参数 pga_aggregate_limit 以允许数据库管理员限制 pga内存使用总量
使用pga_aggregate_limit初始化参数可以为pga内存使用量指定硬性限制
一个数据库实例运行时,会有多个会话或进程,它们都有各自使用的pga内存,而有些会话或进程所使用的pga内存是不可优化的
当数据库实例的pga运行总内存超过了pga_aggregate_limit值,则oracle会按特定的顺序,中断或者终止那些使用了最多不可优化的pga内存的会话或进程