(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