index branch dump 里的kdxbrlmc意思

kdxbrlmc---leftmost child

It may seem a little odd that Oracle starts at the “-1th” branch block: computer programs usually start counting at zero or one, but Oracle has a rationale for starting at -1 in branch blocks. Most of the entries in a branch block are pairs of the form (partial key, block address) – and these are listed in the block’s row directory – but there is one special entry (called the “leftmost child – kdxbrlmc”) which omits the partial key and gets stored in a separate place outside the row directory. Oracle omits the key to save a little space and infers the value from the block’s parent (in the branch level above). Since the row directory starts counting at row 0, the leftmost child has to be labelled “-1″.  

由下图来看,节点DE就是root (S)的lefmost child。kdxbrlmc记录的是leftmost child 的DBA



从index blockdump也能看出来:以下是一个btree index的treedump

branch: 0x4123da 4269018 (0: nrow: 111, level: 1)
   leaf: 0x4123db 4269019 (-1: nrow: 485 rrow: 485)
   leaf: 0x4123dc 4269020 (0: nrow: 479 rrow: 479)
   leaf: 0x4123dd 4269021 (1: nrow: 479 rrow: 479)
   leaf: 0x4123de 4269022 (2: nrow: 479 rrow: 479)
   leaf: 0x4123df 4269023 (3: nrow: 479 rrow: 479)


然后再dump rootblock ,dba 为4269018 ,那么它的leftmost child是leaf: 0x4123db 4269019 (-1: nrow: 485 rrow: 485)。从下面的红色字体可以看出,kdxbrlmc就是4269019

Start dump data blocks tsn: 0 file#: 1 minblk 74714 maxblk 74714
buffer tsn: 0 rdba: 0x004123da (1/74714)
scn: 0x0000.004c2519 seq: 0x01 flg: 0x00 tail: 0x25190601
frmt: 0x02 chkval: 0x0000 type: 0x06=trans data
Hex dump of block: st=0, typ_found=1

Block header dump:  0x004123da
 Object id on Block? Y
 seg/obj: 0xe625  csc: 0x00.4c24fc  itc: 1  flg: -  typ: 2 - INDEX
     fsl: 0  fnx: 0x0 ver: 0x01
 
 Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
0x01   0xffff.000.00000000  0x00000000.0000.00  C---    0  scn 0x0000.004c24fc
 
Branch block dump
=================
header address 437719620=0x1a171244
kdxcolev 1
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 2
kdxcosdc 0
kdxconro 110
kdxcofbo 248=0xf8
kdxcofeo 6979=0x1b43
kdxcoavs 6731
kdxbrlmc 4269019=0x4123db
kdxbrsno 0
kdxbrbksz 8060 
kdxbr2urrc 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值