博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
dump索引结构
阅读量:2433 次
发布时间:2019-05-10

本文共 4555 字,大约阅读时间需要 15 分钟。

创建一张表T,及索引ITN
SQL> create table t as select * from dba_objects;
Table created.
SQL> create index itn on t(object_name);
Index created.
查看索引结构
SQL> select object_id from dba_objects where object_name = 'ITN';
 OBJECT_ID
----------
     87926
alter session set events 'immediate trace name treedump level 87926';
/u01/app/oracle/diag/rdbms/test/test/trace/test_ora_2924.trc
branch: 0x417179 4288889 (0: nrow: 2, level: 2) 
<<<<<<<<<< 根节点level最大,是2,叶子节点level是0
    branch: 0x418f38 4296504 (-1: nrow: 309, level: 1) 
<<<<<<<<除了根节点之外,其它节点的编号从-1开始
       leaf: 0x41717a 4288890 (-1: nrow: 187 rrow: 187)
       leaf: 0x41717b 4288891 (0: nrow: 184 rrow: 184)
...
...
根节点4288889
SQL> select dbms_utility.data_block_address_file(4288889) file_id, dbms_utility.data_block_address_block(4288889) block_id from dual;
   FILE_ID   BLOCK_ID
---------- ----------
         1      94585
alter system dump datafile 1 block 94585;
/u01/app/oracle/diag/rdbms/test/test/trace/test_ora_3155.trc
...
Branch block dump
=================
header address 140576901511748=0x7fda9c473a44
kdxcolev 2                 
<<<<<<<<<<<<<<<<<<< level=2
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 2
kdxcosdc 0
kdxconro 1
kdxcofbo 30=0x1e
kdxcofeo 8039=0x1f67
kdxcoavs 8009
kdxbrlmc 4296504=0x418f38 
<<<<<<<<<<<<<<<<<< 4296504是freedump中的第一个分支节点
kdxbrsno 0
kdxbrbksz 8056
kdxbr2urrc 0
row#0[8039] dba: 4296627=0x418fb3
col 0; len 11; (11):  4d 52 56 5f 4f 4c 41 50 32 5f 50 
<<<<<<<<<<索引的健值
col 1; TERM
----- end of branch block dump -----
把健值转化成字符串
select chr(to_number('4d','xx'))||
       chr(to_number('52','xx'))||
       chr(to_number('56','xx'))||
       chr(to_number('5f','xx'))||
       chr(to_number('4f','xx'))||
       chr(to_number('4c','xx'))||
       chr(to_number('41','xx'))||
       chr(to_number('50','xx'))||
       chr(to_number('32','xx'))||
       chr(to_number('5f','xx'))||
       chr(to_number('50','xx')) from dual;
CHR(TO_NUMB
-----------
MRV_OLAP2_P
SQL> select object_name from t where object_name like '
MRV_OLAP2_P%';
OBJECT_NAME
--------------------------------------------------------------------------------
MRV$OLAP2_POP_CUBES
MRV$OLAP2_POP_DIMENSIONS
MRV_OLAP2_POP_CUBES
MRV_OLAP2_POP_DIMENSIONS
查看第一个分支节点
SQL> select dbms_utility.data_block_address_file(4296504) file_id, dbms_utility.data_block_address_block(4296504) block_id from dual;
   FILE_ID   BLOCK_ID
---------- ----------
         1     102200
alter system dump datafile 1 block 102200;
/u01/app/oracle/diag/rdbms/test/test/trace/test_ora_3766.trc
...
Branch block dump
=================
header address 140454403013188=0x7fbe16cc7a44
kdxcolev 1             
<<<<<<<<<<<<< level=1
KDXCOLEV Flags = - - -
kdxcolok 0
kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
kdxconco 2
kdxcosdc 0
kdxconro 308
kdxcofbo 644=0x284
kdxcofeo 652=0x28c
kdxcoavs 8
kdxbrlmc 4288890=0x41717a   
<<<<<<<<<<<<第一个叶子节点
kdxbrsno 0
kdxbrbksz 8056
kdxbr2urrc 0
row#0[8020] dba: 4288891=0x41717b 
<<<<<<<<<<<<是从第二个叶子节点开始的,第一个叶子节点的键已经在根节点(上一级分支)处显示了。
col 0; len 24; (24):
 2f 31 30 65 62 35 66 65 66 5f 41 6e 79 4e 6f 64 65 43 6f 75 6e 74 65 72   
<<<<<<<<<<<<<<键值
col 1; len 6; (6):  00 41 8c 31 00 39       
<<<<<<<<<<<<<<叶子节点的dba
row#1[7978] dba: 4288892=0x41717c
col 0; len 30; (30):
 2f 31 31 66 32 37 39 35 61 5f 44 54 44 47 72 61 6d 6d 61 72 43 68 69 6c 64
 72 65 6e 4c 69
col 1; len 6; (6):  00 41 8b 18 00 07
row#2[7937] dba: 4288893=0x41717d
col 0; len 29; (29):
 2f 31 32 65 32 65 32 38 65 5f 53 6e 6d 70 4d 69 62 54 72 65 65 54 72 65 65
 4e 6f 64 65
col 1; len 6; (6):  00 41 8a 37 00 15
...
...
row0 col1:
select
chr(to_number('2f','xx'))||chr(to_number('31','xx'))||chr(to_number('30','xx'))||chr(to_number('65','xx'))||
chr(to_number('62','xx'))||chr(to_number('35','xx'))||chr(to_number('66','xx'))||chr(to_number('65','xx'))||
chr(to_number('66','xx'))||chr(to_number('5f','xx'))||chr(to_number('41','xx'))||chr(to_number('6e','xx'))||
chr(to_number('79','xx'))||chr(to_number('4e','xx'))||chr(to_number('6f','xx'))||chr(to_number('64','xx'))||
chr(to_number('65','xx'))||chr(to_number('43','xx'))||chr(to_number('6f','xx'))||chr(to_number('75','xx'))||
chr(to_number('6e','xx'))||chr(to_number('74','xx'))||chr(to_number('65','xx'))||chr(to_number('72','xx'))
from dual;
CHR(TO_NUMBER('2F','XX')
------------------------
/10eb5fef_AnyNodeCounter
SQL> select object_name, object_type from t where object_name like '
/10eb5fef_AnyNodeCounter%';
OBJECT_NAME                    OBJECT_TYPE
------------------------------ -------------------
/10eb5fef_AnyNodeCounter       JAVA CLASS
/10eb5fef_AnyNodeCounter       SYNONYM

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26239116/viewspace-2081661/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/26239116/viewspace-2081661/

你可能感兴趣的文章
链表算法面试题---合并N个有序链表
查看>>
链表算法面试题---分割链表
查看>>
总结、归类---使用二分处理旋转数组的问题
查看>>
分布式常用技术
查看>>
uniapp DES加解密
查看>>
小程序DES加解密
查看>>
Vue 路由 导航守卫(全局守卫、路由独享守卫)
查看>>
ajax图片上传
查看>>
小程序数组去重
查看>>
微信小程序生成分享海报
查看>>
值得收藏的 CSS 形状
查看>>
H5屏幕宽度大小自适应方式
查看>>
中秋诗歌两首
查看>>
计算机学科一些重要算法的列表
查看>>
进站画面:1q84音乐电台
查看>>
回复旦
查看>>
二十世纪计算机十大著名算法
查看>>
MFC程序更换XP皮肤
查看>>
SkinSharp使用方法
查看>>
盘点2010年电子书市场
查看>>