av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁技術(shù)文章
文章詳情頁

通過Oracle的緩沖區(qū)內(nèi)部機(jī)制調(diào)整性能

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