PGA管理

PGA指的是程序全局区,是服务器进程使用的一块包含数据和控制信息的内存区域,PGA是非共享的内存,在服务器进程启动或创建时分配,
(在系统运行时,排序,连接等操作也可能需要进一步的PGA分配),并为Server Process排他访问,所以PGA中的数据结构并不需要通过Latch来保护。

进程的创建通常有两种模式,专用服务器模式及共享服务器模式。在专用服务器模式下,Oracle会为每个会话启动一个Oracle进程;而在共享模式
下,通常在服务器端启动一定数量的服务器进程,然后由多个客户端请求共享同一个Oracle服务进程。通常数据库都运行在专用服务器模式下。PGA
的内容依专用模式和共享服务器模式而有所不同,但是通常来说,PGA中包含私有SQL区(存放绑定信息,运行时内存结构等),Session信息等内容。

PGA:(1)固定PGA (2)可变PGA

PGA的创建过程:当客户端向服务器发送连接请求,服务器监听到客户端请求,在专用服务器模式下,会在服务器端衍生一个Server Process来代理
              用户的请求,服务器进程进而向实例发起连接,创建会话,而PGA就为Server Process所分配和使用。
             
可变PGA:(1)会话内存 (2)私有的SQL区 --对于专用服务器模式,这部分内存在PGA中分配,对于共享服务器模式,这部分内存在SGA中分配

私有SQL区:(1)永久区域 (2)运行时区域

用户进程的任务执行以及Cursor的使用是PGA内存的主要消耗者

在共享服务器模式下,一个共享服务器进程被多个用户进程共享,此时UGA是Shared Pool或Large Pool的一部分,而在专用服务器模式下,UGA则是
PGA的一部分

Dedicated模式:PGA服务于进程,UGA服务于会话

 

从Oracle 9i开始,增加一个新特性,自动PGA管理,Oracle可以在一个总体PGA使用限制下自动管理和调整SQL内存区。

在Oracle 9i中,PGA_AGGREGATE_TARGET参数仅对专用服务器模式下的专属连接有效,但是对共享服务器连接无效
从Oracle 10g开始,PGA_AGGREGATE_TARGET对专用服务器连接和共享服务器连接同时生效

对于PGA_AGGREGATE_TARGET参数的设置,Oracle提供这样一个建议方案
(1)对于OLTP系统,PGA_AGGREGATE_TARGET=物理内存*80%*20%
(2)对于DSS系统,PGA_AGGREGATE_TARGET=物理内存*80%*50%

80%是操作系统分配给Oracle的内存,20%是Oracle分配给PGA的内存

在AIX上通常建议Oracle使用内存不超过物理内存的70%

v$process视图增加了相应的字段记录进程PGA的耗用
v$process_memory视图可以进一步知道PGA内存消耗在什么地方

SQL在工作区中以3种方式执行
1.optimal(优化方式):指所有处理可以在内存中完成
2.onepass:大部分操作可以在内存中完成,但是需要使用到磁盘操作
3.multipass:大量操作需要产生磁盘交互,性能极差

PGA的性能指标
select name,value,100*(value/decode((select sum(value) from v$sysstat where name like 'workarea executions%'),0,null,
                                    (select sum(value) from v$sysstat where name like 'workarea executions%'))) pct
  from v$sysstat where name like 'workarea executions%'
 
workarea execution - optimal >= 90% 
workarea execution - multipass = 0% 

 

PGA的优化建议通过v$pga_target_advice和v%pga_target_advice_histogram提供

PGA的转储
alter session set events 'immediate trace name heapdump level n';
其中不同的Level级别决定了将哪些内存堆转储到跟踪文件
Level 1    :PGA汇总信息
Level 2    :SGA汇总信息
Level 4    :UGA汇总信息
Level 8    :当前调用的汇总信息(CGA)
Level 16  :用户调用的汇总信息(CGA)
Level 32  :Large pool的汇总信息(LGA)
Level 1025 :PGA详细信息
Level 2050 :SGA详细信息
Level 5000 :UGA详细信息
Level 8200 :当前调用的详细信息
Level 16400:用户调用的详细信息
Level 32800:Large pool的详细信息

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值