将oracle中常用的表固定在内存中

(1)查看表的存放地点,默认存放到default中

SQL> select table_name,tablespace_name,blocks,buffer_pool from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS BUFFER_

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

DEPT       SYSTEM              1 DEFAULT

EMP        SYSTEM              1 DEFAULT

BONUS      SYSTEM              0 DEFAULT

SALGRADE   SYSTEM              1 DEFAULT

(2)SQL> show parameter cache;          
db_keep_cache_size                   big integer 0                --查看keep的大小,目前为O

(3)SQL> alter system set db_keep_cache_size=10m;            --给keep分配固定空间

(4)SQL> show parameter cache;


NAME                                 TYPE        VALUE

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

db_16k_cache_size                    big integer 0

db_2k_cache_size                     big integer 0

db_32k_cache_size                    big integer 0

db_4k_cache_size                     big integer 0

db_8k_cache_size                     big integer 0

db_cache_advice                      string      ON

db_cache_size                        big integer 0

db_keep_cache_size                   big integer 12M

db_recycle_cache_size                big integer 0

object_cache_max_size_percent        integer     10

object_cache_optimal_size            integer     102400

session_cached_cursors               integer     100

只要数据库不关库,keep _cache中的数据永远不会被踢出内存。

(5)SQL> alter table scott.emp  storage(buffer_pool keep);        --将表放入keep缓存中(前提是张小表,太大不行)
如果keep缓存中放不下,会自动将数据放入default缓存中。

(6)再次查看表的缓存地点

SQL> select table_name,tablespace_name,blocks,buffer_pool from dba_tables where owner='SCOTT';

TABLE_NAME TABLESPACE     BLOCKS BUFFER_

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

DEPT       SYSTEM              1 DEFAULT

EMP        SYSTEM              1 KEEP

BONUS      SYSTEM              0 DEFAULT

SALGRADE   SYSTEM              1 DEFAULT





请使用浏览器的分享功能分享到微信等