程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Oracle數據庫 >> Oracle數據庫基礎 >> Oracle buffer cache 的優化

Oracle buffer cache 的優化

編輯:Oracle數據庫基礎
通過以下兩種方式調整大小:
V$DB_CACHE_ADVICE / buffer cache hit ratio
1) V$DB_CACHE_ADVICE:
當DB_CACHE_ADVICE=on 時有效。列出各種估計的cache size 和對應的物理讀。Size_FACTOR=1表示當前大小。
SELECT size_for_estimate, buffers_for_estimate, estd_physical_read_factor, estd_physical_reads
   FROM V$DB_CACHE_ADVICE
   WHERE name          = 'DEFAULT'
     AND block_size    = (SELECT value FROM V$PARAMETER WHERE name = 'db_block_size')
     AND advice_status = 'ON'; 2) buffer cache hit ratio
低ratio並不能暗示增加cache size可以提高性能。高ratio有時反而會讓你誤認為cache size已經足夠大而滿足要求了。比如:重復的掃描一些大表或索引。因為大表的全表掃描往往都是物理讀,會人為的降低hit ratio。檢查並優化buffer get 較大的sql,Cache 一些經常訪問的數據。
Db_cache_size 是針對默認的db_block_size的,對於非標准的block,要特別指定DB_nK_CACHE_SIZE 參數。 考慮Multiple Buffer Pools:
通常只使用default buffer pool就能滿足應用。KEEP buffer pool 用來支持經常訪問的segment。RECYCLE buffer pool用於不經常的大batch jobs,以防止其不必要的cache消耗。他們都使用LRU規則。通過V$BUFFER_POOL 得到各種pool 信息。
訪問大segment的時候可以考慮:
1、 如果是索引,檢查其是否selective,否則優化sql
2、 如果已經優化,則可以將其放入recycle cache中,這樣就不會影響其他的segment。
3、 或者將一些小的熱segment放入keep cache 中,這樣可以減少cache buffer miss ratio KEPP POOL:
如果應用中有的segment (比如小表)經常被訪問,所以希望其長期保留在buffer中不被因某種因素ageout,可以將其存儲在keep pool中。給KP分配內存,需要設置DB_KEEP_CACHE_SIZE參數,是獨立於default buffer的。
大小取決於你想keep的segment,可以通過V$BH查看segment所占用的buffer,或者通過DBA_TABLES.BLOCKS and DBA_TABLES.EMPTY_BLOCKS得到used blocks
The NOCACHE(默認值) clause has no effect on a table in the KEEP cache.( alter table t nocache;)
可以改變segment的storage( buffer_pool keep),然後在dba_table.buffer_pool體現:
查看Oracle緩存的命中率(大於90%) select 1 - ((physical.value - direct.value - lobs.value) / logical.value) "Buffer Cache Hit Ratio" from v$sysstat physical,v$sysstat direct,v$sysstat lobs,v$sysstat logical where physical.name = 'physical reads' and direct.name='physical reads direct' and lobs.name='physical reads direct (lob)' and logical.name='session logical reads';
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved