PRE_PAGE_SGA 的玩法[转]
来源:互联网 发布:c语言编程进阶书籍 编辑:程序博客网 时间:2024/04/28 13:54
看了看官方文档,了解到一个以前没有注意到的细节(还是得看文档啊........),在Oracle实例启动时,只会在物理内存中首先加载SGA的个内存区的最小的大小(以Granule粒度计算)。而剩余的SGA内存只作为虚拟内存(Page File)分配,只有当进程touch到相应的page时,才会置换到物理内存中。出于最优性能的考虑我们可能需要在实例启动的时,将所有SGA都分配到物理内存中去。这时就可以通过设置PRE_PAGE_SGA参数来达到这个目的了。这就是这个参数存在的意义所在。
这个参数的默认值为FALSE,即不将全部SGA置入物理内存中。当设置为TRUE时,实例启动会将全部SGA置入物理内存中。它可以使实例启动达到它的最大性能状态,但是,启动时间也会更长(将所有的SGA都放到物理内存中去会,Oracle需要touch所有内存页)。
当参数设置为TRUE时,不仅在实例启动时,需要touch所有的SGA页,并且由于每个oracle进程都会访问SGA区,所以每当一个新进程启动时(在DedicatedServer方式中,每个会话都会启动一个Oracle进程),都会touch一遍该进程需要访问的所有页(这个页面数量,由操作系统的单位页面大小和SGA的大小来决定)。因此,每个进程的启动时间页增长了。所以,这个参数的设置也需要根据系统的应用情况来设定。而操作系统的页面的大小是由操作系统自身来指定的。
在pre_page_sga设置为false的情况下,windows的内存使用状况:
在pre_page_sga设置为true的情况下,windows的内存使用状况:
但是,要记住一点:PRE_PAGA_SGA只是在启动时将物理内存分配给SGA,但并不能保证系统在以后的运行过程不会将SGA中的某些页置换到虚拟内存中,也就是说,尽管设置了这个参数,还是可能出现Page In/Out。如果需要保障SGA不被换出,就需要由另外一个参数LOCK_SGA来控制了。这个参数默认值为FALSE,当指定为TRUE时,可以将全部SGA都锁定在物理内存中。当然,有些系统不支持内存锁定,这个参数也就无效了。
http://space.itpub.net/12361284/viewspace-133419
- PRE_PAGE_SGA 的玩法[转]
- PRE_PAGE_SGA 的玩法
- 一次增加内存引发的血案 (由pre_page_sga引发的)
- 一次增加内存引发的血案 (由pre_page_sga引发的)
- 杀人游戏的玩法
- JavaScript的另类玩法
- pcie dma的玩法
- 掌控时间的玩法!!!
- 文件锁的玩法
- session 登陆的玩法
- 政治的玩法
- Dplus的玩法
- git的简单玩法
- 国际象棋的玩法
- 国际象棋的玩法
- Salesforce 的Cache玩法
- 掼蛋的玩法
- 斗鱼大数据的玩法
- jquery 隐藏和显示标签
- 收集oracle统计信息
- Oracle中各个命中率的总结及调优笔记整理
- 2013年展望
- 2012年12月29日 工作总结
- PRE_PAGE_SGA 的玩法[转]
- iPhone5适配的简单方法——适合手工构建视图
- VC写ACtivex控件的起步----创建和调试
- 2012年 年底总结
- ORACLE的表分析策略[转]
- Yii 使用CActiveForm创建表单,以及htmlOptions简单说明
- Log4j知识简单整理
- 整数建散列表
- Conditional Inclusion