keep buffer cache
来源:互联网 发布:网络在线电话免费版 编辑:程序博客网 时间:2024/06/06 00:16
默认的情况下 db_keep_cache_size=0,未启用,如果想要启用,需要手工设置db_keep_cache_size的值,设置了这个值之后
db_cache_size 会减少。
并不是我们设置了keep pool 之后 热点表就一定能够缓存在 keep pool ,keep pool 同样也是 由LRU 链表管理的,当keep pool 不够的时候,最先缓存到 keep pool 的对象会被挤出,不过与default pool 中的 LRU 的管理方式不同,在keep pool 中表永远是 从MRU 移动到LRU,不会由于你做了FTS而将表缓存到LRU端,在keep pool中对象永远是先进先出。
10g中SGA自动管理,ORACLE并不会为我们管理keep pool ,ORACLE只会管理default pool.
查看 keep pool 大小
SQL> select component,current_size from v$sga_dynamic_components
2 where component='KEEP buffer cache';
COMPONENT CURRENT_SIZE
---------------------------------------------------------------- ------------
KEEP buffer cache 0
手动分配keep pool
SQL> alter system set db_keep_cache_size=10m;
System altered.
SQL> select component,current_size from v$sga_dynamic_components where component='KEEP buffer cache';
COMPONENT CURRENT_SIZE
---------------------------------------------------------------- ------------
KEEP buffer cache 12582912 这里keep pool 10M
查看keep pool剩余大小
SQL> select p.name,a.cnum_repl "total buffers",a.anum_repl "free buffers" from x$kcbwds a, v$buffer_pool p
2 where a.set_id=p.LO_SETID and p.name='KEEP';
NAME total buffers free buffers
-------------------- ------------- ------------
KEEP 1497 1497 可以看到没有使用过keep 池
指定table的缓存池
SQL>create table test(a number,b varchar2(100));
Table created.
SQL> alter table test storage(buffer_pool keep);
Table altered.
或者是 create table test(a number ,b varchar2(100)) storage(buffer_pool keep);
SQL> insert into test values(1,'robinson');
1 row created.
SQL> commit;
Commit complete.
SQL> insert into test values(1,'luobingsen');
1 row created.
SQL> commit;
Commit complete.
SQL> /
NAME total buffers free buffers
-------------------- ------------- ------------
KEEP 1497 1492 可以看到使用了5个block
SQL> select table_name,cache,blocks from dba_tables where owner='TEST' and buffer_pool='KEEP';
TABLE_NAME CACHE BLOCKS
------------------------------ -------------------- ----------
TEST N 5 可以看到这个表的 5个block 全部cache 到 keep pool ,这里的cache 字段表明 这个表 还没有使用 这个命令 alter table robinson cache,如果 使用了 alter table TEST cache ,命令,那么 N 将变成Y
总结:如果表经常使用,而且表较小,可以设置 keep pool ,将table 全部 cache 到 keep pool, keep pool 要么 全部 cache 一个table ,要么 不cache ,所以,对于大表来说,如果想要 cache 到 keep pool, 就需要设置 较大的 keep pool ,以容纳 大的 table ,否者就没有作用了 。
- keep buffer cache
- keep buffer cache
- keep buffer cache
- Oracle Buffer Cache 中 Keep Pool 说明
- Oracle Buffer Cache 中 Keep Pool 说明
- Oracle Buffer Cache 中 Keep Pool 说明
- buffer cache的keep pool的过程及操作
- Buffer Cache(缓冲区缓存)篇:keep pool(保留池)
- Buffer Cache
- buffer cache
- buffer & cache
- Buffer cache
- buffer&cache
- buffer cache
- buffer cache
- KEEP Buffer Pool/recycle pool
- BUFFER CACHE之一:调整buffer cache大小
- BUFFER CACHE之二:管理buffer cache
- S3C2440Linux内核移植
- div与table事件绑定
- Command对象
- 嵌入式DVR单芯片解决方案
- 单芯片MPEG4视频编码解码芯片(SOC/ASIC)-FIC8120/GM8126
- keep buffer cache
- Dedecms基本目录结构
- C# Portable Exe File
- POJ 3259 SPFA判断负权回路
- 解决hadoop-eclipse插件无法连接以及出现异常
- Abator代码生成工具 - -Eclipse下Ibatis|Mybatis代码生成工具 利器
- IOS 应用运动事件分析
- GPS缺陷可让黑客跟踪智能手机用户,甚至完全接管移动设备
- 在线查看word文档