【Expert Oracle Database Architecture 2nd】-内存结构

================================================================================
Oracle内存由 PGA + SGA + UGA 组成
================================================================================
* PGA : Process Global Area
* SGA : System Global Area
* UGA : User Global Area
对于UGA而言,如果DB使用dedicated server则UGA在PGA中,如果使用shared server则UGA在SGA中

================================================================================
PGA的Manual与Automatic模式
================================================================================
PGA的内存管理模式靠WORKAREA_SIZE_POLICY参数决定
* WORKAREA_SIZE_POLICY = AUTO --表示自动管理
* WORKAREA_SIZE_POLICY = MANUAL --表示人工管理
9Ir2以上版本该参数值默认AUTO,反之为MANUAL。该参数可以在session级别进行调整。

================================================================================
PGA的人工管理 ---Manual PGA Memory Management
================================================================================
PGA 的大小由如下几个系统参数设定
* SORT_AREA_SIZE --在数据存储到磁盘前,对这些数据进行排序的内存总量
* SORT_AREA_RETAINED_SIZE --排序完成后保存排序数据结果集的内存总量,放不下的排序数据将存入temporary tablespace
* HASH_AREA_SIZE --存储hash table的内存总量。在一个大结果集与另一个结果集进行关联时,将使用hash结构。较小的一个结果集将hash到hash table中,如果hash table中放不下则通过join key存储到temporary tablespace中
如果sort结果集大小或hash结果大小超过参数设定的大小,则超过的部分将写入temporay tablespace

================================================================================
*_AREA_SIZE参数的特点
================================================================================
所有的 *_AREA_SIZE 比如下面这些(红色字体标示的)
levin@LEVIN1> show parameter area_size


NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
bitmap_merge_area_size               integer     1048576
create_bitmap_area_size              integer     8388608
hash_area_size                       integer     131072
sort_area_size                       integer     65536
workarea_size_policy                 string      AUTO

具有如下特性:
* 这些参数设定的值是针对一个single operation,不是针对session,也不是针对一个SQL语句,也就是说如果设置SORT_AREA_SIZE=10M,意味着一个single sort受限于10M,而一个查询SQL语句可能有多个排序,因此一个查询SQL语句不会受限于10M
* 这些参数的设定值是使用上限,不是实际已分配的内存数。比如设置SORT_AREA_SIZE=1G,并会从RAM中分出1G的内存,他的意思仅仅是允许一个single sort最多使用1G的内存。请注意如果这些参数设置的不足以对一次排序或hash操作的数据进行存储,那么多余的数据将swap至temporary tablespace中






---END

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值