(转)深入研究B树目录(二)
(转)深入研究B树索引(二)2.????B树索引的内部结构我们可以使用如下方式将B树索引转储成树状结构的形式而呈
(转)深入研究B树索引(二)
2.????B树索引的内部结构
我们可以使用如下方式将B树索引转储成树状结构的形式而呈现出来:
每个索引条目都指向一个分支节点。其中col 1表示所链接的分支节点的地址,该值经过一定的转换以后实际就是row#所在行的dba的值。如果根节点下没有其他的分支节点,则col 1为TERM;col 0表示该分支节点所链接的最小键值。其转换方式非常复杂,比如对于row #0来说,col 0为31 30 30 30 30 30 30 33,则将其中每对值都使用函数to_number(NN,’XX’)的方式从十六进制转换为十进制,于是我们得到转换后的值:49,48,48,48,48,48,48,51,因为我们已经知道索引键值是char类型的,所以对每个值都运用chr函数就可以得到被索引键值为:10000003。实际上,对10000003运用dump函数得到的结果就是:49,48,48,48,48,48,48,51。所以我们也就知道,10000003就是dba为25226808的索引块所链接的最小键值。row#0[8018]?flag:?-----,?lock:?0????col?0;?len?8;?(8):?31?30?30?30?30?33?39?33????col?1;?len?6;?(6):?01?40?2e?93?00?16????row#1[8000]?flag:?-----,?lock:?0????col?0;?len?8;?(8):?31?30?30?30?30?33?39?33????col?1;?len?6;?(6):?01?40?2e?e7?00?0e????…………????row#358[1574]?flag:?-----,?lock:?0????col?0;?len?8;?(8):?31?30?30?30?30?33?39?37????col?1;?len?6;?(6):?01?40?18?ba?00?1f????-----?end?of?leaf?block?dump?-----?