国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

使用特制的報表來檢查Oracle的緩存效率

2024-08-29 13:39:01
字體:
來源:轉載
供稿:網友

  對Oracle進行優化時,一個要點在于對RAM數據緩沖區進行有效的治理。假如能將數據塊存儲到作為數據緩沖區使用的RAM中,從而避免物理性的寫盤操作,Oracle的性能就能獲得顯著增強。 以前,Oracle專家在分配RAM緩存區域時,需要定義db_block_buffers參數(在Oracle 9i中是db_cache_size)來指定這個緩存的大小。然后,讓Oracle來治理這個RAM區域中的數據塊。但在Oracle 9i中,由于增加了對多個塊大小的支持,所以你能治理每個單獨的數據緩沖池,并將表和索引隔離到幾個獨立的數據緩沖區中。
  
  
  Oracle緩存入門
  
  
  SQL語句從表中請求一個行時,Oracle首先檢查內部內存結構,核實數據是否在一個數據緩沖區中。假如是,就從那里返回請求的數據,從而避免一次物理性的IO操作。在Oracle的某些64位版本中,由于SGA非常大,所以小型數據庫可以整個兒緩存下來,這已經在“Tweak Oracle data buffer parameters to cache entire databases” 一文中進行了討論。但是,對于非常大的數據庫來說,RAM數據緩沖區無法容納所有數據庫塊。
  
  Oracle答應將頻繁使用的塊放到RAM中。假如數據緩沖區不足以容納整個數據庫,Oracle會通過“最不常用”(least-recently-used)算法,判定要將數據庫的哪些頁從內存刷新回數據庫中。Oracle在數據緩沖區中為每個塊都維持了一個駐留內存的控制結構:新數據塊插入數據緩沖區的中部,一個塊每次被請求時,都會移至列表開頭。最少用的數據塊會逐漸落到數據緩沖區的末尾,最終被刪除,以便為新數據塊騰出空間。
  
  
  從Oracle 8開始,Oracle提供了3個獨立的RAM池來容納進入的Oracle數據塊:
  
  KEEP池用于容納應用程序常用的表,比如一些要經常進行表掃描操作的小表。
  RECYCLE池為一些大型表保留,它們要進行全表掃描,而且通常不會重讀。使用RECYCLE池后,進入的數據塊就不會將數據塊從更常用的表和索引中刷新出去。
  DEFAULT池用于容納不適合放到KEEP或RECYCLE中的其他所有表和索引。
  記住,KEEP和RECYCLE池只是DEFAULT池的子集。理解了Oracle數據緩沖區的基本機制后,接著來看看如何利用數據字典查詢來查看緩沖區的內容。
  
  針對數據緩沖區的字典查詢
  
  Oracle提供了v$bh視圖,答應你查看數據緩沖區的內容,以及查看緩沖區中為每個segment類型使用的塊的數量。假如使用了多個數據緩沖區,而且想知道為表和索引使用的緩存容量,這個視圖就尤其有用。將v$bh視圖與dba_objects結合,就能逐塊列出數據緩沖區的內容,并了解數據緩沖區具體如何對表和索引內容進行緩存。
  
  清單A 中的腳本將數據緩沖區的信息格式化為一個不錯的報表,你可用它監視數據庫中的數據緩沖區活動。圖A展示了該報表的輸出。
  
  圖A
  使用特制的報表來檢查Oracle的緩存效率
  數據緩沖區活動報表
  如清單A所示,這個報表能提供非常有價值的信息,使數據緩沖區中的表和索引都能一目了然。假如你為數據緩沖區預備的RAM資源有限,這個報表可清楚地顯示緩沖區中為每個對象使用的塊數。
  
  Oracle的中點插入(midpoint insertion)算法將每個緩沖區都分解成“熱”和“冷”兩個區域,具體則取決于每個數據塊被讀取的頻率。一個數據塊每次被重新引用時,都會移動到數據塊鏈條的頭部,從而進入數據緩沖區的“熱”區??煞磸瓦\行這個報表,監視數據塊在冷熱兩個區域移動的情況。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 蓬莱市| 新和县| 吴堡县| 遂昌县| 大同县| 沾益县| 隆子县| 清水县| 广元市| 政和县| 双流县| 华蓥市| 景泰县| 棋牌| 张北县| 朔州市| 锡林浩特市| 长春市| 嵊州市| 海伦市| 竹溪县| 蒙自县| 房产| 泗水县| 繁峙县| 永川市| 英吉沙县| 新蔡县| 湄潭县| 浙江省| 伊宁县| 德阳市| 灵璧县| 岐山县| 胶州市| 靖边县| 武邑县| 肇东市| 肇东市| 宁河县| 安国市|