索引的数据结构:b-tree(balance tree 平衡树)
1.
dump索引结构命令
alter session set events 'immediate trace name treedump level 11869';
11869(object_id):
select object_id from dba_objects where object_name = 'INX_TT1';
INX_TT1(索引名):需大写
2.
dump后,文件存放目录查询
show parameter user⇒user_dump_dest
3.
查询当前sessionID
select distinct sid from v$mystat;
4.
根据sessionID查询为这个session服务的进程地址
select paddr from v$session where sid = :sessionID;
5.
根据进程地址查询进程ID
select spid from v$process where addr=:paddr;
6.根据进程ID查看在2处所在目录下,尾数和进程ID相同的文件,即1处的dump文件。
7.
打开6处所查看的文件,根据leaf的十进制数(leafAddress10),
查询索引所处的文件ID和数据块儿ID
文件ID:select dbms_utility.data_block_address_file(:leafAddress10) from dual;
块儿ID:select dbms_utility.data_block_address_block(:leafAddress10) from dual;
8.
因为索引也是个段,因此可以根据下述SQL查询段信息
select * from dba_extents where seqment_name='IDX_TT1'
9.
根据文件编号(fno)和块儿编号(bno),dump索引信息
alter system dump datafile :fno block :bno
10.
纵上分析(将索引信息转为二进制后与rowid对比),索引保存的是rowid的后三位(fno,bno,rno)