Buffer Cache (buffer cache) articles: keep pool (reservation pool)

http://www.2cto.com/database/201309/244325.html

Buffer Cache (buffer cache) articles: keep pool (reservation pool)

default buffer pool
keep buffer pool
recycle buffer pool
--Reserved pool and recycle pool can allocate memory independently of other caches in sga. When creating a table, you can use the buffer_pool keep and buffer_pool recyle clauses in the storage clause to specify the pool where the data blocks of the table will reside​.
 
keep buffer pool
When the data is read into the keep buffer pool, it will remain in memory and will not be flushed out of memory. For example, a table that is frequently used all day long is advantageously placed in the keep buffer pool to reduce the number of IOs. .
The size of the keep pool is determined by db_keep_cache_size, the default value is 0
Example:
Setp1 sets the size of db_keep_cache_size
        
SQL> alter system set db_keep_cache_size=32M scope=both;
System altered.
SQL>  show parameter keep
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
buffer_pool_keep                     string
control_file_record_keep_time        integer     7
db_keep_cache_size                  big integer 32M
/*--Note buffer_pool_keep, 8i parameter, the meaning is the same as db_keep_cache_size
Increasing db_keep_cache_size will reduce db_cache_size accordingly. You can view db_cache_size in the following ways
SQL> select * from v$sgainfo;
Fixed SGA Size                              2217992 No
Redo Buffers                                2396160 No
Buffer Cache Size                         255852544 Yes
Shared Pool Size                          230686720 Yes
Large Pool Size                             4194304 Yes
Java Pool Size                              4194304 Yes
Streams Pool Size                                 0 Yes
Shared IO Pool Size                               0 Yes
Granule Size                                4194304 No
Maximum SGA Size                          839282688 No
Startup overhead in Shared Pool            67108864 No
Free SGA Memory Available                 339738624
or
SELECT x.ksppinm NAME,y.ksppstvl VALUE, x.ksppdesc describ
FROM SYS.x$ksppi x, SYS.x$ksppcv y
WHERE x.indx = y.indx AND x.ksppinm LIKE '%__db_cache_size%';
SQL> SELECT x.ksppinm NAME,y.ksppstvl VALUE, x.ksppdesc describ
  2  FROM SYS.x$ksppi x, SYS.x$ksppcv y
  3  WHERE x.indx = y.indx AND x.ksppinm LIKE '%__db_cache_size%';
NAME                           VALUE                          DESCRIB
------------------------------ ------------------------------ --------------------------------------------------------------------------------
__db_cache_size                255852544                      Actual size of DEFAULT buffer pool for standard block size buffers
*/
Setp2 keeps the table in the keep pool
Way 1:
SQL> create table test_keep1 (id int,name varchar2(32));
Table created.
SQL>  alter table test_keep1 storage(buffer_pool keep);
Table altered.
Way 2:
SQL> create table test_keep2 (id int,name varchar2(32)) storage(buffer_pool keep);
Table created.
 
Step3 View the objects put into the keep pool
SQL> select segment_name from dba_segments where BUFFER_POOL = 'KEEP';
TEST_KEEP1
TEST_KEEP2
 
Setp4 loads the table into the keep pool
SQL> select * from test_keep1;
Setp5 detects IO situation
 
SET AUTOTRACE ON STATISTICS
 select * from test_keep1;
 
Setp6 cancel keep
alter table test_keep1 storage(buffer_pool default);
 
 

Guess you like

Origin http://10.200.1.11:23101/article/api/json?id=326924223&siteId=291194637