oracle的db_buffer_pool由三部分組成:
buffer_pool_defualt

buffer_pool_keep

buffer_pool_recycle

如果要把表釘死在內存中,也就是把表釘在keep區。

 

 


--表如果緩存的話是緩存在keep區
SQL> alter table t1 storage(buffer_pool keep);

表已更改。


--查詢到放在keep區中的表,但是不意味著表已經被緩存.
SQL> select table_name from dba_tables where buffer_pool='KEEP';

TABLE_NAME
------------------------------
T1


--將表T1緩存

SQL> alter table t1 cache;

表已更改。


--查詢到表是否已經被緩存
SQL>select table_name from dba_tables where trim(cache)='Y';

加入到keep區的表不是說不能被移出內存,不過是比較不容易移出內存.


--手工將指定表移出內存

SQL> alter table t1 nocache;

表已更改。