熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

用Oracle9i確定數據存儲大小

2013-11-13 16:04:53  來源: Oracle 

  算數據存儲大小一直是大型數據庫的關鍵技術如果一個數據庫占用成千上萬的字節那麼在RAM中計算整個數據庫會變得不切實際所以Oracle開發人員必須找到一種計算數據庫存儲大小的方法從而可以縮小RAM資源中浪費的空間這就意味著為公司的RAM開支節省了很多的費用
  Oraclei 提供了一種新的特性即v$db_cache_advice這一特性可以預測數據緩沖存儲器中附加數據存儲的大小基於這一特性Oracle DBAs能夠精確地預測RAM數據存儲的最佳大小讓我們用一些范例來說明這些功能
  
  如何實現這些功能?
  當數據存儲容量比較小時隨著RAM數據容量的減小磁盤I/O會劇急減小如下圖所示
   
  圖當RAM數據容量上升時磁盤I/O隨之減少
  然而磁盤I/O的劇急減少也不是趨於無限小當RAM大小達到整個數據庫的占有空間時磁盤I/O中多余部分的減少會變得很小(如下載所示)因為此時數據庫已經沒有可以訪問的數據
   
  圖多余RAM數據空間的下降趨勢
  作為一種通用的規則系統中可利用資源部分都可以調整RAM資源可以改變到一定的大小以減少一些多余的空間(如下圖)這完全可以讓Oracle DBA找到最佳的數據庫容量大小
  
  圖RAM數據容量的最佳大小
  新推出的DB特性與Oracle 中的相應特性非常相似這一特性使用名為x$kcbrbh的方法來跟蹤數據的容量
  
  與Oracle 模型類似你必須預先為數據存放容量分配RAM空間通過設置initora參數並把db_cache_advice設置為on 或ready就可以實現以上過程使用alter system命令還可以動態地更改這些參數所以當數據庫運行時DBA便具備預測功能
  
  既然你必須為db_cache_size預先分配額外的RAM數據容量利用這一功能就可以確定數據容量的最佳大小
  
  一旦db_cache_advice函數被調用而且數據庫運行一段時間Listing A 中的查詢就會執行預測功能
  
  列表A中的結果在Listing B中顯示注意數據的范圍是從當前容量大小的百分之十到當前容量大小的兩倍
  
  這裡你可以看出總共的磁盤I/O沒有最大值這也就是典型的大型數據庫特性因此也不存在db_cache_size參數的最佳設置當db_cache_size值越大磁盤I/O會變得越小
  
  在db_cache_size中添加塊的方法是很簡單只要內存容量允許你可以增大db_cache_size的值緩沖塊的增加也會導致RAM內存容量的增加通常情況下一個數據庫管理系統不會占用一台機器的全部內存所以DBA應該慎重地預測可使用的內存大小並決定緩沖塊的最佳選擇
  
  一句警告當DBA設置dba_cache_advice=onOracle會從共享的RAM區域偷用空間這樣會導致一些不可意料的破壞例如現成的db_cache_size設置為MBOrcale會從共享區域內偷取一定的RAM空間為了避免這些問題DBA應該在initora文件中設置db_cache_advice=ready當這些完成後Oracle會在數據庫的啟動時間預先分配RAM容量大小
  對於更高版本的Oraclei數據庫你不僅可以控制緩沖塊的數量而且還可以控制每個數據緩沖塊的大小
  
  總結
  隨著Oraclei靈活性的不斷增加和功能上的不斷完善對於數據庫管理人員而言確定SGA區域最佳容量大小是一個新的難題把這一工作處理得當便意味著在RAM資源上節省大量的資金

From:http://tw.wingwit.com/Article/program/Oracle/201311/17777.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.