oracle的内存分为两个部分。一个是SGA(system global area),一个是PGA(program global area)。所谓的内存管理,就是对这两部分区域进行管理。oracle的内存管理经理了如下发展:
oracle 9i PGA自动管理,SGA手动管理
oracle10g PGA自动管理,SGA自动管理
oracle11g PGA,SGA统一自动管理
先看9i时期的PGA自动管理,SGA手动管理
这时期PGA管理有两个选择,手动和自动。
手动时,设置WORKAREA_SIZE_POLICY为MANUAL, 设置各种*_AREA_SIZE的值比如SORT_AREA_SIZE_HASH_AREA_SIZE就可以实现手动PGA管理。
自动时,设置WORKAREA_SIZE_POLICY为AUTO,设置PGA_AGGREAGATE_TARGET的值,则为自动PGA管理。
这时期SGA的管理只可以手动管理,但是相比之前有了进步,可以动态的管理。
再看10g时期的PGA自动管理,SGA自动管理
这时期PGA和9i一样,都可以手动和自动。
这时期的SGA则有了进步,可以手动管理,也增加了自动管理的选择。
设置SGA_TARGET,就可以实现自动SGA管理。
现在看11g时期的PGA,SGA统一自动管理
这时期的内存管理向前兼容。
PGA可以手动,自动管理
SGAK也可以手动,自动管理
但是有了一个更方便的特性,就是把PGA,SGA的自动整合到