Oracle 10G R2 让表常驻内存

首先检查Oracle 参数:

SQL> show parameters sga;

NAME                                 TYPE        VALUE
------------------------------------ ----------- -------
lock_sga                             boolean     TRUE
pre_page_sga                   boolean     TRUE

如果以上两个选项的 VALUE为False 则需要修改为TRUE;

修改:lock_sga :

alter system set lock_sga=true scope=spfile;

修改 pre_page_sga:

alter system set pre_page_sga=true scope=spfile;

根据服务器实际内存以及占用内存的大小修改sga_max_size 到合适的一个内存值:

alter system set sga_max_size = 4096m scope=spfile;

alter system set sga_target = 4000m scope = spfile;

修改db_cache_size(修改一下两个参数需要实际的sga大小,大于指定的内存才可以):

alter system set db_cache_size = 2048m scope=spfile;

alter system set db_keep_cache_size=1024m scope=spfile;

关闭数据库并重启;

shutdown immediate;

startup;

经过以上步骤则可以让表有了常驻内存的可能:

执行一下语句则可以让指定的表进入到常驻内存中去:

alter table table_name storage(buffer_pool keep);
alter table table_name cache;

经过以上步骤则完成了让某一张表 直接常驻内存了.

原文地址:https://www.cnblogs.com/zhangbingCoder/p/5165243.html