首先检查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;
经过以上步骤则完成了让某一张表 直接常驻内存了.