ORACLE資料緩衝區DB cache

2022-04-09 08:18:41 字數 443 閱讀 8115

oracle資料緩衝區db cache

db cache是以資料塊為單位組織的緩衝區,資料庫剛剛啟動的時候,db cache中幾乎沒有使用者資料的緩衝,當會話訪問資料庫中的表或索引時,首先會檢查db cache中是否存在該資料,如果不存在,就會從資料檔案中讀取該資料塊到db cache中,然後再從db cache中讀取該資料。

定位db cache中的資料塊是通過雜湊演算法實現的,有乙個雜湊鏈結構,緩衝區中正在使用的資料塊都在上面。

如果要查詢資料塊,雜湊運算算出資料塊所在鏈的鏈頭,從鏈頭的雙向鍊錶結構掃瞄下去,即可找到資料塊。

這每乙個鏈,我們稱之為bucket,其數量在資料庫啟動後就不會改變,bucket數量有引數_db_block_hash_buckets指定。

db cache由buffer構成。

db chache中的演算法有兩種,lru演算法換進換出buffer,還有雜湊。

輸入緩衝區與輸出緩衝區

本博文通過一段程式來理解輸入緩衝區與輸出緩衝區。程式如下 author wanghao created time thu 17 may 2018 06 03 12 ampdt file name test.c description include int main int argc,const c...

使用者程序緩衝區和核心緩衝區

常常聽到有程式設計師會跟你討論 我們在讀寫檔案的時候,系統是有快取的 但實際上有一部分人把使用者程序緩衝區和系統空間的緩衝區的概念混淆了,包括這兩種緩衝區的用法和所要解決的問題,還有其它類似的概念。本文就來區分一下不同的緩衝區概念 主要針對類unix平台 使用者程序和作業系統的關係 首先我用一張圖來...

php 緩衝區,PHP的輸出緩衝區

1 什麼是緩衝區?緩衝區的作用是把輸入或者輸出的內容先放進記憶體,而不顯示或者讀取,最本質的作用就是協調高速cpu和相對緩慢的io裝置 磁碟等 的運作。2 php在執行的時候,在什麼地方有用到緩衝區?當執行php的時候,如果碰到了echo print r之類的會輸出資料的 php就會將要輸出的資料放...