oracle pga

1 PGAServer Process对应的私有空间,其中保存的都是与会话相关的数据和相关信息。

2 PGA中,主要包括全局变量、数据结构和控制信息。比如我们常说的Session Cursor,就是在执行一个SQL的时候生成在PGA空间中,与SGAShared Cursor对应的SQL执行体。

3在空间使用上,session cursor使用的PGA比较少。很多时候,Oracle的性能好坏是与PGA大小配置密切相关。在运行一些长时间执行、操作结果集合很大的SQL时,Oracle是会将处理的数据集和中间结果集合转移到Server Process的私有空间——PGA中进行处理。在Oracle中,对PGA中这样的空间称之为Work Area

4Work Area的大小设置是和Oracle性能密切相关。在Work Area的具体组成上,有几个比较需要关注的部分:hash_areasort_areabitmap_area。可以show parameter **;

5 hash_area hash_areaOracleSQL进行连接操作(主要是hash join)时,将进行hash函数计算过的bucket集合进行存储的位置。

6 sort_area表示SQL中进行order by等聚集操作的结果集合场所。

7通常情况下,我们都希望SQL执行所需要的中间结果在Work Area的特定区域中可以容纳。因为PGA对应的是内存区域,进行数据处理和保存的速度要远快于磁盘处理速度。当SQL执行所需要的空间小于work area时候,SQL执行的速度就会很快。但是如果SQL需要空间大于Work Area时,Oracle就会使用Temp表空间的空间进行“置换”操作。这个过程要涉及到比较复杂的计算和存储过程,所以一旦出现这样的“multi-pass”过程,SQL执行的效率通常是较低,响应时间也随之增加。

8 DBA只需要指定一个初始化参数pga_aggregate_target,作为从数据库服务器角度希望分配给所有Server ProcessPGA总和大小。

一旦设置了pga_aggregate_target参数,就意味着规定Oracle实例在分配给所有Server process PGA空间的时候,总分配量不要超过这个参数值。但是注意,这个参数是一个target,有一些情况下,Oracle分配的Server process PGA总和是会超过这个target值的。但是总的来说,Oracle在调整时会尽量围绕这个规划值进行调整。

此外,要开启自动的SQL执行空间管理,还要设置workarea_size_policy初始化参数。

9Oracle 9i开始,PGA自动配置调整就成为Oracle PGA设置的一种主要方式。DBA不再过多关注PGA内部各个区划分的大小问题,而是只需要站在Database Server角度,看分配给所有PGA的内存空间大小就可以了。各个分区大小都是通过Oracle自适应的过程进行调节。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值