oracle邏輯讀過程
一個CBC latch管理多個bucket,根據hash找到bucket,不存在遍歷完這個CBC latch的BH去下個CBC latch的現象
Buffer cache中hash bucket的數量由_db_block_hash_buckets引數設定。
宏觀
1.根據要訪問的檔案號、塊號,算出hash值
2.根據hash值找到hash bucket
3.根據每個hash bucket獨有的一個 指向CBC連結串列(cache buffers cache chains list)的連結串列頭(我願稱之為指標),找到對應的CBC連結串列
4.CBC連結串列就是一堆hash值相同的BH(buffer header)組成的,搜尋CBC連結串列=遍歷一個個BH
5.找到目標BH,提取其中的BA(buffer address),BA記錄塊在buffer cache中的地址
6.根據BA訪問buffer(此處buffer指記憶體中的一個單位)
CBC連結串列
1.CBC連結串列是雙向連結串列,互相指向,a互相b b互相a和c,等等,同個列表中的BH的hash值是一樣的。
2.每個bucket都有一個CBC連結串列
3.每個BH大小相同
4.逐個比對BH中的檔案號、塊號,直到找到目標BH
更加微觀一點
1.根據要訪問的檔案號、塊號,算出hash值
2.根據hash值找到hash bucket
3.根據每個hash bucket獨有的一個 指向CBC連結串列(cache buffers cache chains list)的連結串列頭(我願稱之為指標),找到對應的CBC連結串列
4.從CBC連結串列的連結串列頭——CBC連結串列,中間的CBC latch鎖設成X模式(獨佔鎖)
5.CBC連結串列就是一堆hash值相同的BH(buffer header)組成的,搜尋CBC連結串列=遍歷一個個BH
6.在CBC latch鎖的獨佔保護下,找到想要的BH,此BH中的buffer pin鎖從0轉變為S(共享鎖)
7.buffer pin鎖修改完成,釋放獨佔的CBC latch鎖。
8.提取其中的BA(buffer address),BA記錄著塊在buffer cache中的地址
9.根據BA讀取buffer中的資料(此處buffer指記憶體中的一個單位)
10.讀完buffer資料後,buffer pin鎖改為0
本文從Oracle核心技術揭秘_呂海波中理解
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69980685/viewspace-3001674/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Oracle物理讀和邏輯讀Oracle
- Oracle邏輯讀詳解Oracle
- oracle 物理讀 邏輯讀的理解Oracle
- oracle 物理讀,邏輯讀的理解Oracle
- 什麼是oracle 邏輯讀?Oracle
- 有關oracle邏輯讀和物理讀Oracle
- 【機器學習】邏輯迴歸過程推導機器學習邏輯迴歸
- 深入瞭解ORACLE的邏輯讀Oracle
- 在Oracle中,什麼是物理讀和邏輯讀?Oracle
- oracle??邏輯DG同步卡住,session等待row cache lock的處理過程OracleSession
- oracle 邏輯結構Oracle
- 【NinGoo】Oracle10gR2 Logical Standby(四)轉換邏輯備庫的過程GoOracle
- oracle的邏輯結構Oracle
- ORACLE 物理讀 邏輯讀 一致性讀 當前模式讀總結淺析Oracle模式
- 資料寫過程中各項觸發條件及邏輯
- hibernate如何處理儲存過程中的複雜邏輯儲存過程
- sql生成可讀性邏輯圖SQL
- Oracle OCP(41):邏輯結構Oracle
- Oracle 邏輯備份 expdp/impdpOracle
- Oracle 11.1 邏輯壞塊Oracle
- Oracle邏輯備份指令碼Oracle指令碼
- [zt] Oracle的邏輯結構Oracle
- Oracle 邏輯結構簡介Oracle
- 透過Oracle 11g 邏輯standby實現BI的需求Oracle
- 通過Oracle 11g 邏輯standby實現BI的需求Oracle
- 【SQL 優化】異常的邏輯讀SQL優化
- PostgreSQL,SQLServer邏輯增量(通過邏輯標記update,delete)同步到Greenplum,PostgreSQLSQLServerdelete
- 硬解析物理讀VS軟解析邏輯讀 測試
- oracle邏輯儲存結構理解Oracle
- Commit和dbwr沒有任何關係、物理讀產生邏輯讀、快照過舊的理解MIT
- Vsan分散式檔案系統邏輯架構損壞恢復過程分散式架構
- 如何將複雜的應用邏輯從儲存過程移植到業務層儲存過程
- 形式邏輯(普通邏輯)7:推理概述
- Linux程式排程邏輯與原始碼分析Linux原始碼
- ORACLE SQL調優之統計資訊缺失導致的邏輯讀暴增OracleSQL
- oracle邏輯備份之--資料泵Oracle
- Oracle 邏輯恢復工具IMPDP詳解Oracle
- Oracle 邏輯備份之EXPDP精講Oracle