cr塊和latch buffer cache chain
Cr塊和latch buffer cache chain
Cr塊consistent read 塊也就是用來維護oracle的讀一致性的資料塊。當查詢某些資料的時候,發現資料塊的版本比我們要查詢的新,例如session1執行了dml操作並沒有提交,session2此時查詢跟session1相關的dml操作的資料資訊,此時查詢的資料卻是原來的資料資訊。
查詢的過程會在undo段中查詢該資料塊的前映像後,然後把前映像和current塊合併形成了一個CR block,透過查詢cr block就可以滿足資料的一致性了。
CR block存在與sga的buffer cache中,在db cache裡申請一個資料塊,然後對應的回滾段的前映像生成cr block。
cr塊的數量是由隱含引數_db_block_max_cr_dba控制的,預設是最高同時存在5個cr塊,構造cr塊時cr block created計數器都會增加1.
由於cr block和current block的資料塊的rdba都是相同的,會放在相同的hash鏈上,當然某些block的cr block的版本過多,自然會引起hash鏈上的競爭,導致latch buffer cache chain閂競爭。
當然在利用回滾段的前映像和current block構造cr 塊時,很有可能回滾段的已經被覆蓋,也就會出現常見的ora-01555快照過舊。
一個sql語句如何去查詢資料資訊了,根據以前的latch基本記載知道獲取該資料塊的latch然後才能對該資料塊進行讀取,其實一個sql訪問資料資訊的資料塊,需要像連結一樣的結構中去收索這個資料塊是否在記憶體中,此時訪問連結串列也需要一個latch,如果獲取失敗也就是會產生latch buffer cache chain等待了。
Latch buffer cache chain等待:
訪問相同的資料塊的session太多了導致了latch等待,也可能是由於此hash列表的增長,導致掃描hash列表的時間會增加,持有cache buffer chain latch的時間就會變長,其他session獲得latch的時間就會增加,導致了latch buffer cache chain
幾個細節:
Cr塊不會寫入回滾表空間所在的資料檔案
cr塊是從undo表空間中來的,就會存在一個物理讀
讀一個塊可能會或不會需要cr塊
[@more@]來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25362835/viewspace-1055564/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 【BUFFER】Oracle buffer cache之 latch 學習記錄Oracle
- Cache 和 Buffer 的區別在哪裡?
- Cache 和 Buffer 有什麼區別?
- IO之核心buffer----"buffer cache"
- Oracle Cache Buffer ChainsOracleAI
- latch:library cache lock等待事件事件
- DB BUFFER LRU 列表的latch等待
- Linux工具效能調優系列二:buffer和cacheLinux
- Linux如何手動釋放Swap、Buffer和CacheLinux
- [20190319]shared pool latch與library cache latch的簡單探究.txt
- [20210512]shared pool latch與library cache latch的簡單探究.txt
- 33、buffer_cache_3(redo的產生、LRBA、buffer cache裡的等待事件)事件
- Buffer Cache以及buffer busy waits/gc相關事件AIGC事件
- 【Cache】將常用的“小表”快取到Buffer Cache快取
- Linux Buffer/Cache 的區別Linux
- buffer與cache的區別
- 手動釋放Linux上的Swap、Buffer和CacheLinux
- [20201231]RAC buffer states: XCUR, SCUR, PI,CR.txt
- Cache和Buffer都是快取,有什麼區別?Linux快取Linux
- 清理buffer/cache/swap的方法梳理
- PostgreSQL DBA(89) - Linux(Buffer vs Cache)SQLLinux
- Linux記憶體、Swap、Cache、BufferLinux記憶體
- buffer cache深度分析及效能調整(五)
- buffer cache深度分析及效能調整(四)
- buffer cache深度分析及效能調整(六)
- Oracle RAC Cache Fusion 系列十四:Oracle RAC CR Server Part OneOracleServer
- 區塊鏈(Block Chain)結構解析區塊鏈BloCAI
- 計算機buffer和cache的區別?linux運維學習知識計算機Linux運維
- hiccup和Latch off
- [20231023]備庫與alter system flush buffer_cache.txt
- [20200211]檢視v$db_object_cache的CHILD_LATCH欄位.txtObject
- Buffer和Channel
- 效能測試必備知識(11)- 怎麼理解記憶體中的Buffer和Cache?記憶體
- [20210520]11g shared pool latch與library cache mutex的簡單探究.txtMutex
- library cache pin和library cache lock(一)
- library cache pin和library cache lock (zt)
- library cache pin和library cache lock(二)
- 以太坊原始碼分析(21)chain_indexer 區塊鏈索引原始碼AIIndex區塊鏈索引
- 調整緩衝區快取記憶體(Buffer Cache)的效能(轉)快取記憶體