My FAQ,最新最全的IT技术FAQ
最新100篇 | 推荐100篇 | 专题100篇 | 排行榜 | 搜索 | 在线API文档
首 页 | 程序开发 | 操作系统 | 软件应用 | 图形图象 | 网络应用 | 精文荟萃 | 教育认证 | 未整理篇 | 技术讨论
  当前位置: > 程序开发 > 数据库开发 > Oracle
keep 池是个什么概念
作者:未知 时间:2005-09-13 18:59 出处:ChinaUnix.net 责编:My FAQ
              摘要:keep 池是个什么概念

哪位大虾给偶讲讲

 rollingpig 回复于:2003-09-09 14:29:11
1.buffer的一种

2.具有keep的特性

3。可以用于存放经常反问的小表

alter table storage(buffer_pool  keep)

 airlily 回复于:2003-09-09 14:55:44
Defining Multiple Buffer Pools

You can define three buffer pools: Default, Recycle, and Keep. The fact that such blocks are assigned to KEEP pool does not mean that Oracle process will retain them in the cache for a longer period of time. You should segregate such tables by using the storage clause on the underlying tables. By such segregation, you are managing to avoid contention for blocks of different (say RECYCLE or DEFAULT)  pools.

Initialization Parameters:
DB_CACHE_SIZE: Defines the number of buffers for the default pool in Oracle9i. In Oracle9i, this pool is individually configured and other pools do not become a part of this pool. In Oracle8i, DB_BLOCK_BUFFERS parameter defines the size of the buffer cache for the instance. In Oracle8i, each individual buffer pool is created from this total amount; the remainder is allocated to the default buffer pool. 
DB_KEEP_CACHE_SIZE: (In Oracle8i, BUFFER_POOL_KEEP) Defines the buffer pool blocks of data to be retained in cache. In Oracle9i, the memory blocks for the KEEP pool are independent of the DB_CACHE_SIZE, whereas in Oracle8i, memory for KEEP pool is allocated from that defined in DB_BLOCK_BUFFERS.
DB_RECYCLE_CACHE_SIZE: (In Oracle8i, BUFFER_POOL_RECYCLE)Defines the buffer pool for blocks that may not be retained in memory for long. As already stated, the RECYCLE pool gets its allocation from the DB_BLOCK_BUFFERS in Oracle8i.

 toworm 回复于:2003-09-09 16:23:13
我最怕english这些东东了
哪位能介绍一下它的常规用法,我有一个查询频率很高的表,放到keep池中是不是好些

对于查询与更新频率都很高的表呢

对表的数据量有什么限制么

能对表中的一部分数据(比如where a字段<1000)放到keep池中么

 txfy 回复于:2003-09-09 22:42:34
你要先看看你的表占用多少空间,如果表很大,占用空间超过keep buffer或者占用太多就不能放进去,不能将部分放进去吧!

 toworm 回复于:2003-09-15 18:17:04
可是我的表要是动态变化的,因此它的容量也是变化的怎么办,如果放的时候小于keep buffer的容量,而后来增长超过了oracle会怎样处理,报什么错么,还是将该表踢出来

 airlily 回复于:2003-09-16 09:43:31
监控表的变化正是DBA的工作呀。下面的话也许对你有帮助:

Tuning Goal

The goal of the keep buffer pool is to retain objects in memory, thus avoiding I/O operations. The size of the keep buffer pool is computed by adding together the sizes of all objects dedicated to this pool. 

Sizing

Use ANALYZE ... ESTIMATE STATISTICS to obtain the size of each object. Indexes may also be put in the keep pool, where necessary. Use ANALYZE INDEX VALIDATE STRUCTURE to find the number of leaf and branch blocks used by the index. 
The high-water mark is always exact, even if you estimate statistics. Add up the BLOCKS column from DBA_TABLES, DBA_TAB_PARTITIONS, DBA_INDEXES, and DBA_CLUSTERS to get the total blocks required.
Depending on the data access characteristics and the amount of available memory, you may not want to keep all of the blocks from all of these objects in the buffer pool. Often you can significantly decrease the size of your KEEP buffer pool and still maintain a high hit ratio. Those blocks can be allocated to other buffer pools. 

The DBA must monitor objects in the KEEP pool that grow in size. An object may no longer fit in the KEEP buffer pool, in which case you will begin to lose blocks out of the cache.

 toworm 回复于:2003-09-16 09:55:42
可我还是想知道,表大小超过keep 池容量以后,keep池是怎样处理的

 
首页 | 投资与合作 | 服务条款 | 隐私政策 | 收藏本站 | 设为首页 | 新用户注册 | 免责声明 | 使用帮助
Copyright ©2005-2008 myfaq.com.cn All rights reserved. www.myfaq.com.cn 版权所有