ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Keep小表到内存,提高访问速度

Keep小表到内存,提高访问速度

原创 Linux操作系统 作者:安佰胜 时间:2010-09-08 16:11:58 0 删除 编辑

Keep小表到内存,提高访问速度

 

俩小表,频繁更新,老出现等待

干脆keep到内存里,避免物理读,提高性能

使用到参数buffer_pool_keep

 

Oracle的高速缓冲区其实可以分成三个不同的子池

默认池

Keep池

Recycle池

 

Keep中可以保留经常使用的数据,使其不被老化调,提高命中率;recycle相反。默认数据存放在默认池中

 

数据库版本

SQL> select * from v$version;

 

BANNER

----------------------------------------------------------------

Oracle9i Enterprise Edition Release 9.2.0.8.0 - 64bit Production

PL/SQL Release 9.2.0.8.0 - Production

CORE    9.2.0.8.0       Production

TNS for Solaris: Version 9.2.0.8.0 - Production

NLSRTL Version 9.2.0.8.0 - Production

 

Sga分配,Variable Size有足够空间

SQL> show sga

 

Total System Global Area 2635566408 bytes

Fixed Size                   732488 bytes

Variable Size             704643072 bytes

Database Buffers         1929379840 bytes

Redo Buffers                 811008 bytes

 

Keep池已经分配

SQL> show parameter keep

 

NAME                                 TYPE        VALUE

------------------------------------ ----------- ------------------------------

buffer_pool_keep                     string

control_file_record_keep_time        integer     7

db_keep_cache_size                   big integer 33554432

 

keep表到内存中

alter table tbl_a storage (buffer_pool keep);

alter table tbl_b storage (buffer_pool keep);

keep索引到内存中

 alter index IND_AA storage (buffer_pool keep);

 

查询被存在于keep池中的表

SELECT BUFFER_POOL,table_name FROM DBA_Tables where BUFFER_POOL<>'DEFAULT';

 

BUFFER_ TABLE_NAME

------- ------------------------------

KEEP    TBL_A

KEEP    TBL_B

 
使用keep表到内存的方式可以显著缓解
buffer busy wait
cache buffer chains
等待事件的出现
 
至于如何确定应该keep的对象可以通过对x$bh 视图中tch字段的值进行统计而获得
原则上讲,热的索引和表,无论大小都可以放到内存中。

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

请登录后发表评论 登录
全部评论

注册时间:2009-08-26

  • 博文量
    215
  • 访问量
    660363