开博了。其实之前有的,只是不在pub上,最近实在忍受不了msn共享空间了。
关于Multiple Buffer Pools的一些疑问
上一篇 / 下一篇 2008-06-24 10:22:42 / 个人分类:Oracle资料与实践
查看( 155 ) /
评论( 5 )
TAG:
-
shiri512003发布于2008-06-24 10:38:45
-
首先要搞清楚为什么引入Multiple Buffer Pools
引用官方文档
[php]
http://download.oracle.com/docs/ ... 1/memory.htm#i30935
A single default buffer pool is generally adequate for most systems. However, users with detailed knowledge of an application's buffer pool might benefit from configuring multiple buffer pools.
With segments that have atypical access patterns, store blocks from those segments in two different buffer pools: the KEEP pool and the RECYCLE pool. A segment's access pattern may be atypical if it is constantly accessed (that is, hot) or infrequently accessed (for example, a large segment accessed by a batch job only once a day).
Multiple buffer pools let you address these differences. You can use a KEEP buffer pool to maintain frequently accessed segments in the buffer cache, and a RECYCLE buffer pool to prevent objects from consuming unnecessary space in the cache. When an object is associated with a cache, all blocks from that object are placed in that cache. Oracle maintains a DEFAULT buffer pool for objects that have not been assigned to a specific buffer pool. The default buffer pool is of size DB_CACHE_SIZE. Each buffer pool uses the same LRU replacement policy (for example, if the KEEP pool is not large enough to store all of the segments allocated to it, then the oldest blocks age out of the cache).
By allocating objects to appropriate buffer pools, you can:
Reduce or eliminate I/Os
Isolate or limit an object to a separate cache
[/php]
三种cache的说明,引用concept
[php]The KEEP buffer pool retains the schema object's data blocks in memory.
The RECYCLE buffer pool eliminates data blocks from memory as soon as they are no longer needed.
The DEFAULT buffer pool contains data blocks from schema objects that are not assigned to any buffer pool, as well as schema objects that are explicitly assigned to the DEFAULT pool.[/php]
搞清原理之后,再去具体问题具体分析。
cache不是万能的,要合理的使用
-
foxmile
发布于2008-06-24 10:43:34
-
定义是死的,使用却是活的。
我明白每个池的作用,但是我的疑问,定义并不能解惑
-
shiri512003发布于2008-06-24 10:53:48
-
to:如果keep池够大,是否可以将频繁使用的大表都放进去?有没有一个用于分辨的方法。
频繁使用是指什么呢?
1、如果是频繁使用该表,但每次使用都是访问不同的数据,而且每次访问的数据量都很小,那么就cache的使用效率来讲,是不合适的,当然有keep的话随便吧
2、如果是频繁大量访问该表的数据,那么这时候cache的投入所产生的效益就是很高的,也可以一定程度上防止default cache抖动,所以oracle也是推荐这时候使用keep的
投入要计算效益,如果不计效益的话,那就没什么好说的了,只要别让投入的增加变成系统负担就可以了
-
shiri512003发布于2008-06-24 10:54:37
-
to:keep、default、recycle池的算法是否一样,比如如果recycle够大,是不是也可以当keep池用
定义清楚的话,这个没什么好说的
-
foxmile
发布于2008-06-24 10:59:04
-
QUOTE:
原帖由 shiri512003 于 2008-6-24 10:54 发表
在生产上没有做过这种设置。测试一下。
to:keep、default、recycle池的算法是否一样,比如如果recycle够大,是不是也可以当keep池用
定义清楚的话,这个没什么好说的
标题搜索
日历
|
|||||||||
| 日 | 一 | 二 | 三 | 四 | 五 | 六 | |||
| 1 | 2 | ||||||||
| 3 | 4 | 5 | 6 | 7 | 8 | 9 | |||
| 10 | 11 | 12 | 13 | 14 | 15 | 16 | |||
| 17 | 18 | 19 | 20 | 21 | 22 | 23 | |||
| 24 | 25 | 26 | 27 | 28 | 29 | 30 | |||
| 31 | |||||||||
数据统计
- 访问量: 4135
- 日志数: 139
- 图片数: 1
- 建立时间: 2007-12-10
- 更新时间: 2008-08-01

