oracle 9i引入了一個新的途徑來預測數據緩沖cache中附加數據緩存的所帶來的好處的多少。v$db_cache_advice顯示了20個可能的緩沖cache大小的“脫靶”率(范圍從當前大小的10%到200%)。由于oracle 9i中你需要維護五個分開的數據緩沖cache,因此這個特性非常重要。這些數據緩沖包括:
default池
keep池
recycle池
2k數據緩沖
4k數據緩沖
8k數據緩沖
16k數據緩沖
32k數據緩沖
警告:當你把dba_cache_advice設置為on時,oracle會從共享的池中“竊取”ram頁面,這往往嚴重影響到了庫cache。例如,如果設置db_cache_size為500m,oracle就會從共享池中竊取相當多數量的ram空間。為了避免這個問題,我們應該在init.ora文件中把dba設置為db_cache_advice=ready。這樣,oracle會在數據庫啟動時預分配ram內存。
為了演示cache建議是如何工作的,讓我們看看statspack報告來看看在哪些時間數據緩沖命中率低于90%。
***********************************************************
當數據緩沖命中率低于90%時,你就應該
考慮增加db_cache_size參數了。
***********************************************************
yr. mody hr. name bhr
------------- -------- -----
2001-01-27 09 default 45
2001-01-28 09 recycle 41
2001-01-29 10 default 36
2001-01-30 09 default 28
2001-02-02 10 default 83
根據上面的輸出信息,我們可以在每天上午8點到9點之間增加db_cache_size,從pga_aggregate_target中竊取ram空間。
下面我們看看利用了db_cache_advice之后的輸出。下表給出了增加了新的數據緩沖后對磁盤i/o減少的估計值的全部信息。
estd phys estd phys
cache size (mb) buffers read factor reads
---------------- ------------ ----------- ------------
30 3,802 18.70 192,317,943 10% size
60 7,604 12.83 131,949,536
91 11,406 7.38 75,865,861
121 15,208 4.97 51,111,658
152 19,010 3.64 37,460,786
182 22,812 2.50 25,668,196
212 26,614 1.74 17,850,847
243 30,416 1.33 13,720,149
273 34,218 1.13 11,583,180
304 38,020 1.00 10,282,475 current size
334 41,822 .93 9,515,878
364 45,624 .87 8,909,026
395 49,426 .83 8,495,039
424 53,228 .79 8,116,496
456 57,030 .76 7,824,764
486 60,832 .74 7,563,180
517 64,634 .71 7,311,729
547 68,436 .69 7,104,280
577 72,238 .67 6,895,122
608 76,040 .66 6,739,731 2x size
新聞熱點
疑難解答