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;
表已更改。