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/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- Verilog 邏輯綜合過程
- 在Oracle中,什麼是物理讀和邏輯讀?Oracle
- oracle 邏輯結構Oracle
- 【機器學習】邏輯迴歸過程推導機器學習邏輯迴歸
- 邏輯課程目錄
- Oracle OCP(41):邏輯結構Oracle
- 《底層邏輯》讀後感
- 儲存過程迴光返照?SQLite邏輯和資料合併儲存過程SQLite
- oracle邏輯備份之--資料泵Oracle
- sql生成可讀性邏輯圖SQL
- 3:Oracle體系結構(邏輯結構)Oracle
- oracle索引核心過程Oracle索引
- Oracle儲存過程Oracle儲存過程
- PostgreSQL,SQLServer邏輯增量(通過邏輯標記update,delete)同步到Greenplum,PostgreSQLSQLServerdelete
- Vsan分散式檔案系統邏輯架構損壞恢復過程分散式架構
- Linux程式排程邏輯與原始碼分析Linux原始碼
- [20190311]關於oracle物理與邏輯壞塊.txtOracle
- [20231124]奇怪的高邏輯讀4.txt
- [20230216]奇怪的高邏輯讀3.txt
- 適當調大arraysize減少邏輯讀
- [20210224]fetch r=0算邏輯讀嗎.txt
- [20210220]gdb跟蹤邏輯讀2.txt
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- Blazor入門100天 : 身份驗證和授權 (2) - 角色/元件/特性/過程邏輯Blazor元件
- Oracle邏輯備份與恢復選項說明Oracle
- 【ASK_ORACLE】Oracle Data Guard(三)邏輯備庫的概念和優勢Oracle
- 一次調整arraysize減少邏輯讀
- 深度解讀GaussDB邏輯解碼技術原理
- MySQL調優篇 | 邏輯架構解讀(1)MySql架構
- [20210301]為什麼邏輯讀這麼多.txt
- [20210219]全表掃描邏輯讀問題.txt
- Oracle ASM Rebalance執行過程OracleASM
- 原創:oracle 儲存過程Oracle儲存過程
- 邏輯題
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- [20180425]為什麼走索引邏輯讀反而高.txt索引
- 讀人工智慧全傳06邏輯程式設計人工智慧程式設計