ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 怎样把经常使用的小表存放在KEEP缓冲区中

怎样把经常使用的小表存放在KEEP缓冲区中

Linux操作系统 作者:zhongshanyang 时间:2015-12-10 10:08:19 0 删除 编辑

1)分配keep缓冲区

alter system set db_keep_cache_size = 20m;

2)把表存放在keep中

create table test (a nuber) storage (buffer_pool keep);
或者
alter table test storage(buffer_pool keep);

insert into test values (1);
或者查询记录
select * from test;

3)查看进行了几次物理读,并且在哪个缓冲区里读:

select name,physical_reads,db_block_gets + consistent_gets mem from v$buffer_pool_statistics
where name='KEEP';

4)再查询表记录,然后观察进行了几次物理读,并且在哪个缓冲区里读:
select * from test;

select name,physical_reads,db_block_gets + consistent_gets mem from v$buffer_pool_statistics
where name='KEEP';


注:
1)对表test就行访问时都在db_cache_pool操作。如果没有分配b_keep_cache_size则不会放在keep缓冲区中。

2)如果在把表的内容放入KEEP缓冲区之前,已经对表就行访问,这时数据会放在DB_CACHE_SIZE中。则每次进行数据读取的时候,都从DB_CACHE_SIZE中读取,可以使用如下命令,把DB_CACHE_SIZE中数据清空:
ALTER SYSTEM FLUSH BUFFER_CACHE;

3)alter system flush shared_pool;使用命令刷新共享池,会造成重新分析sql语句。

请参考:

http://www.unixgroup.net/viewtopic.php?p=11639#11639


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

上一篇: 浅谈Oracle SQL trace
请登录后发表评论 登录
全部评论

注册时间:2015-01-18

  • 博文量
    132
  • 访问量
    461650