WEB开发网
开发学院数据库Oracle Oracle内存结构研究-PGA篇 阅读

Oracle内存结构研究-PGA篇

 2009-07-06 11:50:06 来源:WEB开发网   
核心提示: 2) SORT_AREA_RETAINED_SIZE:如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE设为384KB,Oracle内存结构研究-PGA篇(2),则Oracle使用512KB的内存进行排序,然后保留384KB的已排序数据,四

2)        SORT_AREA_RETAINED_SIZE:

如果SORT_AREA_SIZE设为512KB,SORT_AREA_RETAINED_SIZE设为384KB,则Oracle使用512KB的内存进行排序,然后保留384KB的已排序数据,另外512KB-384KB=128KB的已排序数据会写到临时表空间中。

        如果SORT_AREA_RETAINED_SIZE没有设置,则它的值为0,但是实际保留的排序数据和SORT_AREA_SIZE相同。

3)        HASH_AREA_SIZE:

一个大集合和另个集合进行连接时,会用到HASH_AREA_SIZE参数。较小的 表会放到这部分内存中作为驱动表,然后大表进行探索(PROBE)操作进行连接。如果HASH_AREA_SIZE过小会影响两个集合(表)连接时的性能。

注意点:

1)        如果需要排序的数据量大于SORT_AREA_SIZE,Oracle会分批进行排序。把当前已排序的数据保存到临时表空间中,然后对剩余的数据进行排序。最后,还会对这些保存在临时表空间中的已排序数据再进行排序,因为每次保存到临时表空间中的已排序数据只是部分数据的排序,对整体需排序的数据来说只是部分局部有序。

2)        *_AREA_SIZE只是对某个操作的限制,一个查询可能有多个操作,每个操作都有自己的内存区。如果SORT_AREA_SIZE设为5MB,一个查询可能会有10个排序操作,这样一个查询会占用50MB的排序内存。

3)        3,*_AREA_SIZE内存的分配是按需分配。如果一个查询需要5MB内存进行排序,就算分配1G的SORT_AREA_SIZE也不会全部使用,只会使用需要的5MB的内存量。

四、自动PGA内存管理

要启用自动PGA内存管理,设置下列参数:

1,WORKAREA_SIZE_POLICY=AUTO

2,PGA_AGGREGATE_TARGET=非零

有关PGA_AGGREGATE_TARGET:

上一页  1 2 3 4 5  下一页

Tags:Oracle 内存 结构

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接