首页 > Linux操作系统 > Linux操作系统 > 关于Treedump
昨天晚上google的时候偶然发现的一个文档上,提到了一个叫treedump的event,能够dump出B*Tree Index的树型结构,挺有意思的。文档下载:http://www.itpub.net/676601.html
做个小小试验,测试一下:
SQL> create table t as select object_id,object_type from all_objects;
表已创建。
SQL> create index ix_t_id on t(object_id);
索引已创建。
SQL> create bitmap index ix_t_type on t(object_type);
索引已创建。
SQL> select object_id from all_objects where object_name='IX_T_ID' and owner=user;
OBJECT_ID
----------
10607
SQL> select object_id from all_objects where object_name='IX_T_TYPE' and owner=user;
OBJECT_ID
----------
10608
SQL> alter session set events 'immediate trace name treedump level 10607';
会话已更改。
SQL> alter session set events 'immediate trace name treedump level 10608';
会话已更改。
----- begin tree dump
branch: 0x407302 4223746 (0: nrow: 21, level: 1)
leaf: 0x407303 4223747 (-1: nrow: 485 rrow: 485)
leaf: 0x407304 4223748 (0: nrow: 479 rrow: 479)
leaf: 0x407305 4223749 (1: nrow: 479 rrow: 479)
leaf: 0x407306 4223750 (2: nrow: 479 rrow: 479)
leaf: 0x407307 4223751 (3: nrow: 479 rrow: 479)
leaf: 0x407308 4223752 (4: nrow: 479 rrow: 479)
leaf: 0x407309 4223753 (5: nrow: 479 rrow: 479)
leaf: 0x40730a 4223754 (6: nrow: 479 rrow: 479)
leaf: 0x40730b 4223755 (7: nrow: 479 rrow: 479)
leaf: 0x40730c 4223756 (8: nrow: 479 rrow: 479)
leaf: 0x40730d 4223757 (9: nrow: 479 rrow: 479)
leaf: 0x40730e 4223758 (10: nrow: 479 rrow: 479)
leaf: 0x40730f 4223759 (11: nrow: 479 rrow: 479)
leaf: 0x407310 4223760 (12: nrow: 479 rrow: 479)
leaf: 0x407311 4223761 (13: nrow: 479 rrow: 479)
leaf: 0x407312 4223762 (14: nrow: 479 rrow: 479)
leaf: 0x407313 4223763 (15: nrow: 479 rrow: 479)
leaf: 0x407314 4223764 (16: nrow: 479 rrow: 479)
leaf: 0x407315 4223765 (17: nrow: 479 rrow: 479)
leaf: 0x407316 4223766 (18: nrow: 479 rrow: 479)
leaf: 0x407317 4223767 (19: nrow: 220 rrow: 220)
----- end tree dump
----- begin tree dump
leaf: 0x40731a 4223770 (0: nrow: 34 rrow: 34)
----- end tree dump
可见,对于bitmap index,treedump没有作用。
对于B*Tree Index的dump文件,稍微解释一下:
branch/leaf代表该行是分支节点还是页节点(第一行的branch其实是root节点)。随后是该节点的rdba,前面是16进制的,后面是10进制的。括号里的第一个数字是同一个level的节点位置计数,root节点从0开始,其他的level从-1开始。nrow:节点中曾经有过的index entry数,rrow:节点中当前的index entry数,从这两个值可以分析出index的空间使用效率。对于branch节点,后面还有个level,叶节点隐含level为0,向上计数直到root。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/193161/viewspace-50241/,如需转载,请注明出处,否则将追究法律责任。