亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

Chinaunix

標(biāo)題: 解析4-2 [打印本頁]

作者: roothomes    時(shí)間: 2011-12-23 03:07
標(biāo)題: 解析4-2
解析4-2
如果這一等待位于undo header,可以通過增加回滾段(rollback segment)來解決緩沖區(qū)的問題。
如果等待位于undo block上,我們需要增加提交的頻率,使block可以盡快被重用;使用更大的回滾段;降低一致讀所選擇的表中數(shù)據(jù)的密度;增大DB_CACHE_SIZE。
如果等待處于data block,表明出現(xiàn)了hot block,可以考慮如下方法解決: ①將頻繁并發(fā)訪問的表或數(shù)據(jù)移到另一數(shù)據(jù)塊或者進(jìn)行更大范圍的分布(可以增大pctfree值 ,擴(kuò)大數(shù)據(jù)分布,減少競(jìng)爭(zhēng)),以避開這個(gè)"熱點(diǎn)"數(shù)據(jù)塊。②也可以減小數(shù)據(jù)塊的大小,從而減少一個(gè)數(shù)據(jù)塊中的數(shù)據(jù)行數(shù),降低數(shù)據(jù)塊的熱度,減小競(jìng)爭(zhēng);③檢查對(duì)這些熱塊操作的SQL語句,優(yōu)化語句。④增加hot block上的initrans值。但注意不要把initrans值設(shè)置的過于高了,通常設(shè)置為5就足夠了。因?yàn)樵黾邮聞?wù)意味著要增加ITL事務(wù)槽,而每個(gè)ITL事務(wù)槽將占用數(shù)據(jù)塊中24個(gè)字節(jié)長(zhǎng)度。默認(rèn)情況下,每個(gè)數(shù)據(jù)塊或者索引塊中是ITL槽是2個(gè),在增加initrans的時(shí)候,可以考慮增大數(shù)據(jù)塊所在的表的PCTFREE值,這樣Oracle會(huì)利用PCTFREE部分的空間增加ITL slot數(shù)量,最大達(dá)到maxtrans指定。
如果等待處于index block,應(yīng)該考慮重建索引、分割索引或使用反向鍵索引。為了防止與數(shù)據(jù)塊相關(guān)的緩沖忙等待,也可以使用較小的塊,在這種情況下,單個(gè)塊中的記錄就較少,所以這個(gè)塊就不是那么"繁忙"。或者可以設(shè)置更大的PCTFREE,使數(shù)據(jù)擴(kuò)大物理分布,減少記錄間的熱點(diǎn)競(jìng)爭(zhēng)。在執(zhí)行DML (insert/update/ delete)時(shí),Oracle向數(shù)據(jù)塊中寫入信息,對(duì)于多事務(wù)并發(fā)訪問的數(shù)據(jù)表,關(guān)于ITL的競(jìng)爭(zhēng)和等待可能出現(xiàn),為了減少這個(gè)等待,可以增加initrans,使用多個(gè)ITL槽。在Oracle9i 中,可以使用ASSM這個(gè)新特性O(shè)racle 使用位圖來管理空間使用,減小爭(zhēng)用。
latch free:當(dāng)閂鎖丟失率高于0.5%時(shí),需要調(diào)整這個(gè)問題。詳細(xì)的我們?cè)诤竺娴腖atch Activity for DB部分說明。
Enqueue 隊(duì)列是一種鎖,保護(hù)一些共享資源,防止并發(fā)的DML操作。隊(duì)列采用FIFO策略,注意latch并不是采用的FIFO機(jī)制。比較常見的有3種類型的隊(duì)列:ST隊(duì)列,HW隊(duì)列,TX4隊(duì)列。ST Enqueue的等待主要是在字典管理的表空間中進(jìn)行空間管理和分配時(shí)產(chǎn)生的。解決方法:1)將字典管理的表空間改為本地管理模式 2)預(yù)先分配分區(qū)或者將有問題的字典管理的表空間的next extent設(shè)置大一些。HW Enqueue是用于segment的HWM的。當(dāng)出現(xiàn)這種等待的時(shí)候,可以通過手工分配etents來解決。TX4 Enqueue等待是最常見的等待情況。通常有3種情況會(huì)造成這種類型的等待:1)唯一索引中的重復(fù)索引。解決方法:commit或者rollback以釋放隊(duì)列。 2)對(duì)同一個(gè)位圖索引段(bitmap index fragment)有多個(gè)update,因?yàn)橐粋(gè)bitmap index fragment可能包含了多個(gè)rowid,所以當(dāng)多個(gè)用戶更新時(shí),可能一個(gè)用戶會(huì)鎖定該段,從而造成等待。解決方法同上。3)有多個(gè)用戶同時(shí)對(duì)一個(gè)數(shù)據(jù)塊作update,當(dāng)然這些DML操作可能是針對(duì)這個(gè)數(shù)據(jù)塊的不同的行,如果此時(shí)沒有空閑的ITL槽,就會(huì)產(chǎn)生一個(gè)block-level鎖。解決方法:增大表的initrans值使創(chuàng)建更多的ITL槽;或者增大表的pctfree值,這樣oracle可以根據(jù)需要在pctfree的空間創(chuàng)建更多的ITL槽;使用smaller block size,這樣每個(gè)塊中包含行就比較少,可以減小沖突發(fā)生的機(jī)會(huì)。
Free Buffer:這個(gè)等待事件表明系統(tǒng)正在等待內(nèi)存中的可用空間,這說明當(dāng)前Buffer 中已經(jīng)沒有Free 的內(nèi)存空間。如果應(yīng)用設(shè)計(jì)良好,SQL 書寫規(guī)范,充分綁定變量,那這種等待可能說明Buffer Cache 設(shè)置的偏小,你可能需要增大DB_CACHE_SIZE。該等待也可能說明DBWR 的寫出速度不夠,或者磁盤存在嚴(yán)重的競(jìng)爭(zhēng),可以需要考慮增加檢查點(diǎn)、使用更多的DBWR 進(jìn)程,或者增加物理磁盤的數(shù)量,分散負(fù)載,平衡IO。




歡迎光臨 Chinaunix (http://www.72891.cn/) Powered by Discuz! X3.2