Chinaunix首页 | 论坛 | 博客
  • 博客访问: 89389
  • 博文数量: 26
  • 博客积分: 920
  • 博客等级: 准尉
  • 技术积分: 235
  • 用 户 组: 普通用户
  • 注册时间: 2006-06-28 10:50
文章分类

全部博文(26)

文章存档

2015年(2)

2011年(1)

2009年(10)

2008年(2)

2007年(1)

2006年(10)

我的朋友

分类: Oracle

2008-08-19 19:06:46

第三章 调整共享池的大小
共享池包括:
1.数据字典高速缓存
用于存储共享的sql和pl/sql
2.library cache
3.用于保存共享服务器连接的用户全局区UGA
用在配置大型共享池之前来保存有关共享服务器连接的信息
优化共享池要考虑的一些事项:
1.Data Dict Cache或library cache上的未命中 ,通常比大多数其他SGA内存结构上的cache未命中代价更高。所以应首先考虑优化shared pool
2.应主要关心library Cache,因为shared pool中的内存分配算法倾向与把字典数据放在内存的时间比较长,而library Cache中的数据放在内存
中的时间要短。因此,将library Cache优化到一个可以接受的命中率,即可确保Data Dict Cache的命中率可以接受。
3.如果shared pool设置太小,则server必须贡献资源,来管理有限的可用空间,这将消耗cpu资源,造成竞争
4.如果shared pool设置太大,管理碎片的开销也可能造成争用现象
SHARED_POOL_SIZE设置共享池的大小
library Cache 中使用LRU算法。把语句还原成ASCII文本的数值,并hash处理
优化的目标:
1.在OLAP环境中,要尽量避免重新分析:用变量绑定,增加代码重用;分配更多的内存给libray cache,减少未命中率;如果语句中引用的对象被
修改,则已有的执行计划将失效,需重新分析
2.减少内存碎片化:在shared pool中分配保留空间,来确保有连续的空间,用以满足大的内存需求;将经常要用的大型对象如sql和pl/sql
区连接在内存中,而不用LRU来管理;使用小的pl/sql打包函数,而不使用打的匿名块;配置大型共享池,用以oracle shared Server连接;
测量oracle shared Server连接中用于共享服务器的会话的内存使用量

v$librarycache
有关名字空间的3个关键字:
GETS   请求总数
PINS  执行的次数
RELOAD 重新分析次数
阅读(1398) | 评论(0) | 转发(0) |
0

上一篇:中秋快乐!

下一篇:insert first/all 和upsert

给主人留下些什么吧!~~