linux block的含义,Block Prefetching含义
以下是翻譯Christian Antognini的《Troubleshooting Oracle Performance》P422,關(guān)于block prefetching介紹:
在正常情況下,每個基于單個數(shù)據(jù)塊的處理(如rowid訪問和Index range scan),如果緩存中不存在該數(shù)據(jù)塊,將導(dǎo)致單個數(shù)據(jù)塊的物理讀操作。對于Nested Loop關(guān)聯(lián)來說,特別是進(jìn)行多行處理,單數(shù)據(jù)塊物理讀將變得沒有效率。事實上,通常NL關(guān)聯(lián)通過多個單數(shù)據(jù)塊物理讀來訪問多個連續(xù)的數(shù)據(jù)塊。
為了有效提高NL關(guān)聯(lián),數(shù)據(jù)庫引擎利用block prefetching,優(yōu)化器目標(biāo)是用一個多數(shù)據(jù)塊物理讀來替代多個單數(shù)據(jù)塊物理讀,多數(shù)據(jù)塊物理讀不單單針對表,也針對索引。
查看訪問路徑我們無法獲知數(shù)據(jù)庫引擎是否使用prefetching,只能從server進(jìn)程執(zhí)行物理讀來窺探,特別是等待事件中相關(guān)信息:
1、db file senquential read 事件,對應(yīng)是單數(shù)據(jù)塊物理讀,如果發(fā)生該等待事件,表示block prefetching沒有被使用,或者是所需的數(shù)據(jù)塊已經(jīng)在緩存中。
2、db file scattered read事件,對應(yīng)是多數(shù)據(jù)塊物理讀,因此,如果發(fā)生ROWID訪問或Index Range Scan,意味著blcok prefetching被使用。
非常重要一點(diǎn)是,我們無法控制block prefetching的使用,只能是數(shù)據(jù)庫引擎決定是否使用block prefetching。
注: 參看metalink 406966.1介紹,table prefetching 可能導(dǎo)致錯誤的結(jié)果。
來自 “ ITPUB博客 ” ,鏈接:http://blog.itpub.net/354732/viewspace-619397/,如需轉(zhuǎn)載,請注明出處,否則將追究法律責(zé)任。
總結(jié)
以上是生活随笔為你收集整理的linux block的含义,Block Prefetching含义的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python合并多个excel的某些字段
- 下一篇: linux php生产环境搭建,linu