oracle block資料塊結構續(二)之dml_ckptq_fileq_objq
/*******測試下dml事務與資料塊的ckptq,fileq,objq的不同變化及相關聯絡***************/
/**********新增記錄的block dump bh***********/
BH (0x000007FF40FF38A8) file#: 5 rdba: 0x0140bc5e (5/48222) class: 1 ba: 0x000007FF40EE8000
set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 991,28
dbwrid: 0 obj: 72973 objn: 72973 tsn: 5 afn: 5 hint: f
hash: [0x000007FF41F67298,0x000007FF604870E8] lru: [0x000007FF40FF3AC0,0x000007FF40FF3860]
obj-flags: object_ckpt_list
ckptq: [0x000007FF46FA65A8,0x000007FF40FF3B08] fileq: [0x000007FF607C49A8,0x000007FF40FF3B18] objq: [0x000007FF40FF3AE8,0x000007FF40FF3888]
st: XCURRENT md: NULL tch: 2
flags: buffer_dirty redo_since_read
LRBA: [0xc2.841f.0] LSCN: [0x0.5b458d] HSCN: [0x0.5b458d] HSUB: [1]
cr pin refcnt: 0 sh pin refcnt: 0
/********檢查點發生***********/
SQL> alter system checkpoint;
System altered
/********檢查點後的block bh************/
BH (0x000007FF40FF38A8) file#: 5 rdba: 0x0140bc5e (5/48222) class: 1 ba: 0x000007FF40EE8000
set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 991,28
dbwrid: 0 obj: 72973 objn: 72973 tsn: 5 afn: 5 hint: f
--ckptq發生了變化,fileq發生了變化
hash: [0x000007FF41F67298,0x000007FF604870E8] lru: [0x000007FF40FF3AC0,0x000007FF40FF3860]
ckptq: [NULL] fileq: [NULL] objq: [0x000007FF40FF3AE8,0x000007FF40FF3888]
st: XCURRENT md: NULL tch: 2
--flags發生了變化
flags: block_written_once redo_since_read
--lrba及lscn發生了變化
LRBA: [0x0.0.0] LSCN: [0x0.0] HSCN: [0xffff.ffffffff] HSUB: [1]
cr pin refcnt: 0 sh pin refcnt: 0
/*******發生一個update************/
SQL> update t_cr set a=30;
1 row updated
---基於原來xcurrent產生了一個新的xcurrent
BH (0x000007FF40FF3648) file#: 5 rdba: 0x0140bc5e (5/48222) class: 1 ba: 0x000007FF40EE4000
set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 991,28
dbwrid: 0 obj: 72973 objn: 72973 tsn: 5 afn: 5 hint: f
hash: [0x000007FF40FF3958,0x000007FF604870E8] lru: [0x000007FF41F92AB0,0x000007FF607C46F0]
obj-flags: object_ckpt_list
ckptq: [0x000007FF607C4908,0x000007FF43FD1538] fileq: [0x000007FF607C49A8,0x000007FF607C49A8] objq: [0x000007FF5C2A33A0,0x000007FF5C2A33A0]
st: XCURRENT md: NULL tch: 1
flags: buffer_dirty block_written_once redo_since_read
LRBA: [0xc2.8480.0] LSCN: [0x0.5b473d] HSCN: [0x0.5b473d] HSUB: [1]
cr pin refcnt: 0 sh pin refcnt: 0
---這裡說明原來的xcurrent變成了cr
BH (0x000007FF40FF38A8) file#: 5 rdba: 0x0140bc5e (5/48222) class: 1 ba: 0x000007FF40EE8000
set: 3 pool 3 bsz: 8192 bsi: 0 sflg: 2 pwc: 991,28
dbwrid: 0 obj: 72973 objn: 72973 tsn: 5 afn: 5 hint: f
hash: [0x000007FF41F67298,0x000007FF40FF36F8] lru: [0x000007FF607C46F0,0x000007FF41F66BB0]
lru-flags: moved_to_tail
ckptq: [NULL] fileq: [NULL] objq: [NULL]
st: CR md: NULL tch: 1
cr: [scn: 0x0.5b473c],[xid: 0x0.0.0],[uba: 0x0.0.0],[cls: 0x0.5b473c],[sfl: 0x0],[lc: 0x0.5b458d]
flags: block_written_once redo_since_read
cr pin refcnt: 0 sh pin refcnt: 0
小結:1,如果連續發生dml操作,oracle會基於原來的xcurrent構建一個新的xcurrent,但把原來的xcurrent變成cr
2,每次發生dml,資料塊block中的bh的fileq,ckptq,objq會發生變化
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9240380/viewspace-758889/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 比特幣原始碼研讀(2)資料結構-區塊Block比特幣原始碼資料結構BloC
- 區塊鏈(Block Chain)結構解析區塊鏈BloCAI
- Oracle Block Cleanouts 塊清除OracleBloC
- 2_深入解析Oracle ASSM結構之Level 2 Bitmap BlockOracleSSMBloC
- 【BLOCK】Oracle 塊管理常用SQLBloCOracleSQL
- 資料結構之Stack | 讓我們一塊來學習資料結構資料結構
- 資料結構之Queue | 讓我們一塊來學習資料結構資料結構
- 資料結構之Set | 讓我們一塊來學習資料結構資料結構
- 資料結構之LinkedList | 讓我們一塊來學習資料結構資料結構
- 資料結構之「二叉樹」資料結構二叉樹
- 資料結構二之棧和佇列資料結構佇列
- 區塊鏈中的資料結構之 Merkle Tree區塊鏈資料結構
- Oracle之結構Oracle
- oracle asm 資料塊重構恢復OracleASM
- 資料結構之「二叉搜尋樹」資料結構
- 資料結構小白系列之資料結構概述資料結構
- 【BLOCK】Oracle壞塊處理命令參考BloCOracle
- 常用資料結構之線索二叉樹資料結構二叉樹
- 資料結構之PHP二分搜尋樹資料結構PHP
- 資料結構實驗之連結串列二:逆序建立連結串列資料結構
- 資料結構之「棧」資料結構
- 資料結構之棧資料結構
- 資料結構之圖資料結構
- 資料結構之——棧資料結構
- 資料結構之「樹」資料結構
- 資料結構學習之樹結構資料結構
- Oracle資料塊格式Oracle
- 資料結構之「連結串列」資料結構
- 資料結構之連結串列資料結構
- 重學資料結構之樹和二叉樹資料結構二叉樹
- Agile PLM資料庫表結構(Oracle)資料庫Oracle
- 畫江湖之資料結構【第三話:二叉樹】二茶?資料結構二叉樹
- 畫江湖之資料結構 [第三話:二叉樹] 二茶?資料結構二叉樹
- 重學資料結構(二、棧)資料結構
- 第二章 資料結構資料結構
- 資料結構 - 二叉樹資料結構二叉樹
- 資料結構-二叉樹資料結構二叉樹
- 資料結構之「AVL樹」資料結構
- 資料結構之「佇列」資料結構佇列