linux混合索引结构,唯一性索引的存储结构

唯一性索引的存储跟非唯一性索引的存储是不同的,非唯一性索引的存储需要将ROWID作为一列来存储,而唯一性索引将ROWID存储在DATA区,下面通过实验输出查看唯一性索引的存储情况.

1.创建表和索引

create table tb_unique_index_test

as

select * from dba_objects;

create unique index idx_tb_unique_index_test on tb_unique_index_test(object_id);

2.dump索引树

select object_id from dba_objects t

where t.owner='HXL'

and t.object_name ='IDX_TB_UNIQUE_INDEX_TEST'

OBJECT_ID

----------

70432

alter session set events 'immediate trace name treedump level 70432';

trace文件部分内容如下

----- begin tree dump

branch: 0x1000843 16779331 (0: nrow: 143, level: 1)

leaf: 0x1000844 16779332 (-1: nrow: 520 rrow: 520)

leaf: 0x1000845 16779333 (0: nrow: 513 rrow: 513)

leaf: 0x1000846 16779334 (1: nrow: 513 rrow: 513)

leaf: 0x1000847 16779335 (2: nrow: 513 rrow: 513)

leaf: 0x1000848 16779336 (3: nrow: 513 rrow: 513)

leaf: 0x1000849 16779337 (4: nrow: 513 rrow: 513)

leaf: 0x100084a 16779338 (5: nrow: 513 rrow: 513)

leaf: 0x100084b 16779339 (6: nrow: 513 rrow: 513)

leaf: 0x100084c 16779340 (7: nrow: 513 rrow: 513)

leaf: 0x100084d 16779341 (8: nrow: 513 rrow: 513)

leaf: 0x100084e 16779342 (9: nrow: 513 rrow: 513)

leaf: 0x100084f 16779343 (10: nrow: 513 rrow: 513)

leaf: 0x1000851 16779345 (11: nrow: 513 rrow: 513)

----- end tree dump

4.以某个页节点为例查看页节点的存储情况

SQL> select dbms_utility.data_block_address_file(16779332) file_no,

2    dbms_utility.data_block_address_block(16779332) block_no from dual;

FILE_NO   BLOCK_NO

---------- ----------

4       2116

sql> alter system dump datafile 4 block 2116

trace输出部分内容如下:

Leaf block dump

===============

header address 461914212=0x1b884064

kdxcolev 0

KDXCOLEV Flags = - - -

kdxcolok 0

kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y

kdxconco 1

kdxcosdc 0

kdxconro 520

kdxcofbo 1076=0x434

kdxcofeo 1899=0x76b

kdxcoavs 823

kdxlespl 0

kdxlende 0

kdxlenxt 16779333=0x1000845

kdxleprv 0=0x0

kdxledsz 6

kdxlebksz 8036

row#0[8025] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 30

col 0; len 2; (2):  c1 03

row#1[8014] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 05

col 0; len 2; (2):  c1 04

row#2[8003] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 31

col 0; len 2; (2):  c1 05

row#3[7992] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 1a

col 0; len 2; (2):  c1 06

row#4[7981] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 15

col 0; len 2; (2):  c1 07

row#5[7970] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 11

col 0; len 2; (2):  c1 08

row#6[7959] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 24

col 0; len 2; (2):  c1 09

row#7[7948] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 0d

col 0; len 2; (2):  c1 0a

row#8[7937] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 25

col 0; len 2; (2):  c1 0b

row#9[7926] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 38

col 0; len 2; (2):  c1 0c

row#10[7915] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 28

col 0; len 2; (2):  c1 0d

row#11[7904] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 0c

col 0; len 2; (2):  c1 0e

row#12[7893] flag: ------, lock: 0, len=11, data:(6):  01 00 01 8b 00 14

----- end of leaf block dump -----

End dump data blocks tsn: 4 file#: 4 minblk 2116 maxblk 2116

从以上输出结果可以看出唯一性索引的索引条目中的ROWID存储在DATA区.0b1331709591d260c1c78e86d0c51c18.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值