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