Oracle 内存一 手动内存管理,自动内存管理
2013-07-17 18:24
337 查看
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的自动整合到一起,通过MEMORY_TARGET来管理。这时有了两个参数MEMORY_TARGET,MEMORY_MAX_TARGET.有了这两个参数,就可以把PGA,SGA作为一个整体管理。
有一些要注意的地方是
1.如果设置了MEMORY_TARGET的同时还设置了SGA_TARGET,PGA_TARGET 怎么办呢?这时候,SGA_TARGET和PGA_TARGET的值如果小于MEMORY_TARGET,那么oracle就会把他们作为SGA,和PGA的最小值,如果他们比MEMORY_TARGET还大,那么oracle就会报错。
2.PGA是跟每一个oracle server 进程相关的,所以WORKAREA_SIZE_POLICY应该是可以设置在session级别,也可以设置在system级别。
3. 几个视图比较有用,V$MEMORY_DYNAMIC_COMPONENTS会展示动态调整的内存组件大小。 V$MEMORY_RESIZE_OPS展示了最近的800条SGA调整记录。
本文出自 “初学者” 博客,请务必保留此出处http://dyhgszbt.blog.51cto.com/6646575/1251518
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的自动整合到一起,通过MEMORY_TARGET来管理。这时有了两个参数MEMORY_TARGET,MEMORY_MAX_TARGET.有了这两个参数,就可以把PGA,SGA作为一个整体管理。
有一些要注意的地方是
1.如果设置了MEMORY_TARGET的同时还设置了SGA_TARGET,PGA_TARGET 怎么办呢?这时候,SGA_TARGET和PGA_TARGET的值如果小于MEMORY_TARGET,那么oracle就会把他们作为SGA,和PGA的最小值,如果他们比MEMORY_TARGET还大,那么oracle就会报错。
2.PGA是跟每一个oracle server 进程相关的,所以WORKAREA_SIZE_POLICY应该是可以设置在session级别,也可以设置在system级别。
3. 几个视图比较有用,V$MEMORY_DYNAMIC_COMPONENTS会展示动态调整的内存组件大小。 V$MEMORY_RESIZE_OPS展示了最近的800条SGA调整记录。
本文出自 “初学者” 博客,请务必保留此出处http://dyhgszbt.blog.51cto.com/6646575/1251518
相关文章推荐
- Oracle 内存一 手动内存管理,自动内存管理
- oracle内存管理手动到自动
- 内存泄露之手动内存管理(MRC)
- Linux释放内存及手动释放Oracle共享内存段
- OC 内存管理-----MRC(手动释放内存)
- Xcode 如何设置 自动内存管理 转换为 手动内存管理
- Oracle自动启动改为手动启动(以免不用时占内存)
- iOS手动内存管理之对象持有对象可能存在的内存泄露问题
- Oracle内存全面分析(4)-1Oracle 的内存架构组成_1SGA.4共享池的内存管理(保留共享池和keep对象在共享池)、相关参数和视图
- 内存管理一道数组存储例题存储精讲! (oc手动管理内存,引用计数器)
- Oracle内存全面分析(8)-Oracle的内存管理KSM和KGH
- Oracle 11g 内存手动管理
- Oracle内存全面分析(1)-1Oracle 的内存架构组成_1SGA.1SGA简介以及调整参数
- 修改sga值来减少系统中oracle的内存过大问题。
- 深入理解PHP内存管理之谁动了我的内存
- Oracle 手动创建实例(windows)
- Java内存管理:深入Java内存区域
- 修改oracle内存占用
- Windows内存管理机制及C++内存分配实例(五):堆
- oracle服务详解及手动控制(转)