国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術文章
文章詳情頁

深入探討Oracle數據緩沖區內部機制

瀏覽:2日期:2023-11-24 15:04:20
在本篇Oracle高級教程里,我會探討Oracle數據緩沖區的內部機制——Oracle用這一內存來防止不必要的數據塊從磁盤重讀。理解Oracle數據緩沖區如何操作,是成功地運用它們調整數據庫性能的要害。 在Oracle 8i以前的版本里,當數據塊被從磁盤送進數據緩沖區的時候,數據塊會被自動地放置到最近使用過的數據列表的前部。但是,這種行為從Oracle 8i開始就變了:新數據緩沖區被放置在緩沖區鏈的中部。在調節數據庫的時候,你的目標就是為數據緩沖區分配盡量多的內存,而不會導致數據庫服務器在內存里分頁。數據緩沖區每小時的命中率一旦低于90%,你就應該為數據塊緩沖區增加緩沖區。 數據塊的存活時間 在調入數據塊之后,Oracle會不停地跟蹤數據塊的使用計數(toUCh count,也就是說,這個數據塊被用戶線程所訪問的次數)。假如一個數據塊被多次使用,它就被移動到最近使用過的數據列表的最前面,這樣就能確保它會在內存里保存一段較長的時間。這種新的中點插入技術會確保最常使用的數據塊被保留在最近使用過的數據列表的最前面,因為新的數據塊只有在它們被重復使用的時候才會被移動到緩沖區鏈的最前面。 總而言之,Oracle 8i數據緩沖池的治理要比先前的版本更加有效。通過將新的數據塊插入緩沖區的中部,并根據訪問活動(頻率)調整緩沖區鏈,每個數據緩沖區就被分割成兩個部分:熱區(hot section),代表數據緩沖區的最近使用的一半;冷區(cold section),代表數據緩沖區的最早使用的一半。只有那些被反復請求的數據塊才會被移進每個緩沖池的熱區,這就讓每個數據緩沖區在緩沖常用數據塊的時候效率更高。 熱區的大小要用下面的隱藏參數來配置: _db_percent_hot_default _db_percent_hot_keep _db_percent_hot_recycleOracle公司作為官方沒有推薦更改這些隱藏參數。只有懂得內部機制和希望調節其數據緩沖區行為的有經驗人員才應該使用這些參數。 找到熱數據塊 Oracle 8i保留著一個X$BH內部查看表,用來顯示數據緩沖池的相對性能。X$BH查看表有下列數據列: Tim:兩次使用之間的時間差,和_db_aging_touch_time參數相關。 Tch:使用計數,它和被使用過_db_aging_hot_criteria次之后從冷區移入熱區直接相關。 由于Tch數據列用來追蹤特定數據塊的使用次數,所以你就能夠編寫一個字典查詢來顯示緩沖區里的熱數據塊——使用計數大于10的數據塊,就像下面這樣: SELECT obj object, dbarfil file#, dbablk block#, tch touchesFROM x$bhWHERE tch > 10ORDER BY tch desc;這項高級查詢技術在用于追蹤DEFAULT緩沖池里的對象時尤其有用。一旦定位了熱數據塊,你就能夠把它們從DEFAULT緩沖池移動到KEEP緩沖池。 完全緩沖數據庫 從Oracle 8i開始,隨著64位尋址的出現,你就能夠創建一個完全在數據緩沖區里緩沖的數據庫。現今,任何數據庫通常只用不到20G的內存就能夠被完全緩沖,而更大的數據庫仍然需要部分數據緩沖區。 要利用完全數據緩沖的優勢,就要記住從內存取回數據塊和從磁盤取回數據塊的時間差。對磁盤的訪問時間是以毫秒或者說千分之一秒來計算的,而內存的速度是以納秒或者說十億分之一秒來計算的。因此內存的訪問速度要快三個數量級,即通常要比磁盤的訪問速度塊將近14,000倍。 在完全緩沖Oracle數據庫的時候,你需要仔細制定緩沖的規劃,并在需要的時候增加db_block_ buffers參數的值。在緩沖整個數據庫的時候,多數據緩沖池就不再需要了,所以你可以在DEFAULT數據池里緩沖所有的數據塊。 假如要計算已分配數據塊的數量,就要用下面的命令: select sum(blocks)from dba_data_files;SUM(BLOCKS)----------- 243260select sum(blocks)from dba_extents;SUM(BLOCKS)----------- 321723已使用數據塊的真實數量要通過查看DBMS_ROWID以獲得真實的數據庫地址來確定,就像下面這樣: select sum(blocks)from dba_data_files;隨著數據庫的擴展,你必須不忘增加參數的值。在數據庫的啟動階段,你需要調用一個腳本加載緩沖區,這一步很簡單,就像執行select count(*) from xxx;這樣的命令,因為數據庫里所有表格都會起作用。這就確保所有的數據塊都被緩沖,從而大幅提高讀取操作的性能。但是,寫操作仍然會需要磁盤I/O。由于內存條的價格在持續下跌,現在只需要較小的或者不需要硬件投資就能夠通過完全緩沖一個較小的數據庫從而顯著地提高性能。
標簽: Oracle 數據庫
主站蜘蛛池模板: 国产高清在线精品一区二区三区 | 成 人 黄 色 视频 免费观看 | 在线观看亚洲视频 | 亚洲欧美视频在线观看 | 亚洲精品手机在线观看 | 黄色影院在线 | 国产成年视频 | 亚洲影院在线 | 一级一片免费播放 | 欧美精品国产一区二区三区 | 国产成人精品女人不卡在线 | 国产成人 免费观看 | 欧美国产日本高清不卡 | 中文字幕一区二区精品区 | 国产精品合集久久久久青苹果 | 国产一区二区精品久久91 | 男人天堂网在线 | 日本在线网 | 三级黄色毛片网站 | 亚洲日本久久一区二区va | 亚洲风情第一页 | 99久久香蕉国产线看观香 | 久草福利在线观看 | 国产精品一区亚洲一区天堂 | 久久狠狠色狠狠色综合 | 日本欧美不卡一区二区三区在线 | 亚洲国产另类久久久精品小说 | 国产精品不卡无毒在线观看 | 国产精品视频网址 | 欧美视频精品在线 | 亚洲伊人久久综合影院2021 | 亚洲天堂影院在线观看 | 久久久国产精品免费看 | 男女免费在线视频 | 国产精品久久久久久免费播放 | 国产免费自拍视频 | 99久久精品免费看国产免费 | 久久 精品 一区二区 | 国产精品福利社 | 午夜性爽快免费视频播放 | 日韩最新中文字幕 |