索引分析

索引的数据结构: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)

你可能感兴趣的:(oracle)