| 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池是怎样处理的
|