理想情况下,工作区的大小足够大到能容纳其相关SQL运算符分配的输入数据和辅助内存结构,这一大小被称为工作区的最佳大小。工作区大小小于最佳大小时,响应时间就会增加,因为要对部分输入数据执行额外的传输操作。
自动PGA内存管理功能简化并改进了PGA内存的分配方式。默认情况下,PGA内存管理功能是启动的,在此模式下,Oracle数据库以SGA内存大小的20%为基准,动态调整专用于工作区的那部分PGA内存的大小。最小值为10MB。
在自动PGA内存管理模式下运行时,所有会话的工作区大小的调整都是自动的。在该模式下运行的所有会话都会忽略*_AREA_SIZE参数(例如SORT_AREA_SIZE)。在任何给定时间,可用于实例中各活动工作区的PGA内存总量自动从PGA_AGGREGATE_TARGET初始化参数派生。此内存量设置为PGA_AGGREGATE_TARGET值减去系统其它组件分配的PGA内存量(例如,会话分配的PGA内存)。由此得到的PGA内存随后按照各活动工作区的特定内存需求分配给相应的工作区。
为了实现自动的PGA管理,Oracle引入了几个新的初始化参数:
l PGA_AGGREGATE_TARGET:此参数用来指定所有session总计可以使用最大PGA内存。这个参数可以被动态的更改,取值范围从10M——(4096G-1)bytes。
l WORKAREA_SIZE_POLICY:此参数用于开关PGA内存自动管理功能。该参数有两个选项:AUTO和MANUAL,当设置为AUTO时,数据库使用Oracle9i提供的自动PGA管理功能,当设置为MANUAL时,则仍然使用Oracle9i前手工管理的方式。缺省的,Oracle9i中WORKAREA_SIZE_POLICY被设置为AUTO。
需要注意的是,在Oracle9i中,PGA_AGGREGATE_TARGET参数仅对专用服务器模式下(Dedicated Server)的专属连接有效,但是对共享服务器(Shared Server)连接无效;从Oracle 10g开始PGA_AGGREGATE_TARGET对专用服务器和共享服务器同时生效。
为了向后兼容,Automatic PGA Memory Management可以被关闭,通过设置PGA_AGGREGATE_TARGET参数为0.
关闭Automatic PGA Memory Management后,工作区的最大值通过以下参数来设置:
l SORT_AREA_SIZE
l HASH_AREA_SIZE
l BITMAP_MERGE_AREA_SIZE
l CREATE_BITMAP_AREA_SIZE
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/25744374/viewspace-731886/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/25744374/viewspace-731886/