oracle索引核心過程
索引的根塊、枝塊的查詢額度比葉塊、表塊高很多。
索引根塊、枝塊絕大多數的操作都是讀,除非發生索引分裂。
普通索引的根塊、枝塊 和 Unique索引、索引Unique掃描時索引時,索引的根塊、枝塊、葉塊、
表塊都是以CBC latch共享的模式保護。
Unique索引
如果Unique索引列使用等值條件查詢時(id是Unique索引的索引列,語句為where id=某個值),那索引的根塊、枝塊、葉塊、
表塊都共享CBC latch。
如果不是等值條件,則和非Unique索引一樣,只有根塊、枝塊是共享CBC latch,葉塊、表塊還是獨佔CBC latch。
也就是說,索引Unique掃描(INDEX UNIQUE SCAN)根塊、枝塊、葉塊、表塊都是以CBC latch共享
(例:where id=?,且id列是索引列)
用rowid直接邏輯讀表塊(TABLE ACCESS BY USER ROWID)是獨佔CBC latch。(例:where rowid='xxxxxxxxxxxx')
普通索引的根塊、枝塊
1.根據要訪問的檔案號、塊號,算出hash值
2.根據hash值找到hash bucket
3.根據每個hash bucket獨有的一個 指向CBC連結串列(cache buffers cache chains list)的連結串列頭(我願稱之為指標),
找到對應的CBC連結串列
4.從CBC連結串列的連結串列頭——CBC連結串列,中間的CBC latch鎖設成S模式(共享鎖)
5.在CBC latch鎖的保護下,搜尋連結串列
7.buffer pin鎖修改完成,釋放獨佔的CBC latch鎖。
8.查詢BH中的BA,不對buffer pin鎖狀態進行修改。
9.在共享CBC latch鎖的保護下,根據BH中的BA地址,查詢buffer中的資料
10.查詢buffer資料完畢,釋放CBC latch
本文從Oracle核心技術揭秘_呂海波中理解
來自 “ ITPUB部落格 ” ,連結:https://blog.itpub.net/69980685/viewspace-3004171/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【TUNE_ORACLE】Oracle索引設計思想(二)索引過濾列概述Oracle索引
- 驗證Oracle 10g線上整理碎片索引是否失效過程Oracle 10g索引
- 記一次Oracle分割槽表全域性索引重建的過程Oracle索引
- Oracle儲存過程Oracle儲存過程
- ElasticSearch分片互動過程(建立索引、刪除索引、查詢索引)Elasticsearch索引
- Oracle服務啟動-索引-子查詢-分頁儲存過程問題Oracle索引儲存過程
- oracle邏輯讀過程Oracle
- oracle的儲存過程Oracle儲存過程
- Oracle儲存過程-1Oracle儲存過程
- Linux核心Kernel啟動過程Linux
- openGauss核心:SQL解析過程分析SQL
- Druid.io系列4:索引過程分析UI索引
- Oracle ASM Rebalance執行過程OracleASM
- 原創:oracle 儲存過程Oracle儲存過程
- Oracle 索引Oracle索引
- Oracle儲存過程乾貨(一):儲存過程基礎Oracle儲存過程
- Oracle索引梳理系列(六)- Oracle索引種類之函式索引Oracle索引函式
- 25_解密Oracle redo生成過程解密Oracle Redo
- oracle儲存過程書寫格式Oracle儲存過程
- Sqlsugar呼叫Oracle的儲存過程SqlSugarOracle儲存過程
- LightDB/PostgreSQL 相容Oracle儲存過程SQLOracle儲存過程
- oracle的索引Oracle索引
- 【TUNE_ORACLE】Oracle索引設計思想(三)過濾因子概述與計算Oracle索引
- oracle儲存過程和觸發器Oracle儲存過程觸發器
- 在青雲上部署oracle rac全過程Oracle
- Oracle 儲存過程分頁 + Sqlsugar呼叫Oracle儲存過程SqlSugar
- Linux 核心處理中斷全過程解析Linux
- day25-索引和函式及儲存過程索引函式儲存過程
- oracle重建索引(一)Oracle索引
- oracle重建索引(三)Oracle索引
- 0707_oracle 索引Oracle索引
- oracle重建索引(二)Oracle索引
- Oracle OCP(25):索引Oracle索引
- Oracle虛擬索引Oracle索引
- Oracle:全文索引Oracle索引
- ibatis呼叫oracle儲存過程(極簡版)BATOracle儲存過程
- Oracle 業務資料unload恢復過程Oracle
- 一次ORACLE字元轉換分析過程Oracle字元