ITPub博客

首页 > Linux操作系统 > Linux操作系统 > keep池和recycle池

keep池和recycle池

原创 Linux操作系统 作者:tonywi888 时间:2011-12-21 23:25:40 0 删除 编辑
如果可使用的内存空间比较小,导致数据缓冲区的命中率较低,可以通过配置keep池和recycle池,把性质不同的表分离到不同的数据缓冲区,以提高命中率,降低批操作对正常访问的影响。

默认情况,所有表都是用default池,大小就是buffer cache的大小,由db_cache_size来决定。两个缓冲区的大小分别有参数db_keep_cache_size和db_recycle_cache_size来决定。
在8i中只能修改pfile,然后重启;在9i中可以动态修改,必须先缩小sga中其他内存缓冲区的大小,然后再增加上面两个值。

keep池用来缓存那些经常被访问的表。独立于default池。用户可以查询v$bh视图来找到经常被使用的表。

sql> col object_name format A30
sql> select  o.object_name,count(*)
from dba_object o,v$bh bh
where o.object_id = bh.objd and o.owner !='sys'
group by o.object_name having count(*) > 100
order by count(*) desc;

计算keep池的命中率。
sql> select name,physical_reads,db_block_gets,consistent_gets,1-(physical_reads / (db_block_gets + consistent_gets)) "hit ratio"
from v$buffer_pool_statistics where name='keep';

recycle池用来缓存不希望保存在内存中的表。如很少进行扫描的表。调整db_recycle_cache_size的大小来设置recycle池。一般不要给recycle池很大的空间。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8570952/viewspace-713743/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 行迁移和行链接
请登录后发表评论 登录
全部评论

注册时间:2008-02-25

  • 博文量
    159
  • 访问量
    711662