Buffer Cache(緩衝區快取)篇:keep pool(保留池)
Buffer Cache可以有三個池
預設緩衝區池
keep緩衝區池
recycle緩衝區池
--保留池和回收池可以獨立於sga中的其他快取分配記憶體。建立表的時候可以在storage子句中使用buffer_pool keep和buffer_pool recyle子句來指定表的資料塊將要駐留的池。
keep緩衝區池
當資料讀取到kepp緩衝區池後,會一直保留在記憶體中,不會被刷出記憶體,比如整天使用頻繁的表,有利的做法是講其放在keep緩衝池中,以減少IO數量。
keep池的大小由db_keep_cache_size決定,預設值為0
示例:
Setp1 設定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
/*--注buffer_pool_keep,8i引數,意義和db_keep_cache_size一樣
增大db_keep_cache_size會相應減小db_cache_size,可以通過下面方式檢視db_cache_size
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
或
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 將表keep到keep池中
方式1:
SQL> create table test_keep1 (id int,name varchar2(32));
Table created.
SQL> alter table test_keep1 storage(buffer_pool keep);
Table altered.
方式2:
SQL> create table test_keep2 (id int,name varchar2(32)) storage(buffer_pool keep);
Table created.
Step3 檢視放入keep池中的物件
SQL> select segment_name from dba_segments where BUFFER_POOL = 'KEEP';
TEST_KEEP1
TEST_KEEP2
Setp4 將表載入到keep池中
SQL> select * from test_keep1;
Setp5 檢測IO情況
SET AUTOTRACE ON STATISTICS
select * from test_keep1;
Setp6 取消keep
alter table test_keep1 storage(buffer_pool default);
轉自:http://blog.csdn.net/laoshangxyc/article/details/11732451
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22621861/viewspace-1324314/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- InnoDB 中的緩衝池(Buffer Pool)
- 調整緩衝區快取記憶體(Buffer Cache)的效能(轉)快取記憶體
- MySQL中讀頁緩衝區buffer poolMySql
- Node.js Buffer(緩衝區)Node.js
- Java NIO 之 Buffer(緩衝區)Java
- Java-NIO之Buffer(緩衝區)Java
- 8、Node.js Buffer(緩衝區)Node.js
- Cache和Buffer都是快取,有什麼區別?Linux快取Linux
- Wgpu圖文詳解(03)緩衝區BufferGPU
- KEEP池的CACHE特點(轉)
- Nio再學習之NIO的buffer緩衝區
- 為什麼node.js要引入buffer?淺析緩衝區bufferNode.js
- Redis效能篇(五)Redis緩衝區Redis
- MySQL InnoDB緩衝池MySql
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- buffer與cache的區別
- Linux Buffer/Cache 的區別Linux
- Node.js 中的緩衝區(Buffer)究竟是什麼?Node.js
- 【Azure Redis 快取 Azure Cache For Redis】Redis連線池Redis快取
- MySQL怎麼緩解讀的壓力的?---buffer poolMySql
- node事件迴圈 EventEmitter 非同步I/O Buffer緩衝區 模組事件MIT非同步
- stdio流緩衝區
- Java NIO:緩衝區Java
- Cache 和 Buffer 的區別在哪裡?
- Cache 和 Buffer 有什麼區別?
- 你真的會用PostGIS中的buffer緩衝嗎?
- 聊聊 MySQL 網路緩衝區、net_buffer_length、max_allowed_packet 那些事MySql
- 面試題:你有沒有搞混查詢快取和Buffer Pool?談談看!面試題快取
- Spring Cache快取框架Spring快取框架
- SpringBoot系列——cache快取Spring Boot快取
- keep-alive:元件級快取Keep-Alive元件快取
- Java NIO 之緩衝區Java
- Java整數緩衝區Java
- Unity深度緩衝區指令Unity
- Linux 命令 管道 緩衝區Linux
- Spring Cache快取註解Spring快取
- Guava學習:Cache快取Guava快取
- Spring Boot Cache Redis快取Spring BootRedis快取
- MySQL innodb buffer pool 命中率以及快取了哪些 InnoDB TableMySql快取