a我考网

 找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 117|回复: 0

[考试辅导] 应用技术:转储B*Tree索引的分支结构

[复制链接]
发表于 2012-8-4 14:06:19 | 显示全部楼层 |阅读模式
 我们知道,Oracle允许对B*Tree索引进行转储,用来显示"B*Tree"的层次结构。下面我们来介绍一个具体的实例以此来进行细化的分析:   ◆首先我们需要选择要研究的索引
) K  E  K& i; j1 I" @; @: x# P! h, T+ @9 Q0 n2 q

" ?2 [. u% a4 k1 L9 {SQL> select index_name from user_indexes where index_name='I_BD_INVMANDOC_TS';INDEX_NAME------------------------------I_BD_INVMANDOC_TS2 o6 g! M- t1 L  Y1 C# y
  ◆然后再找到此索引的"object_id"
( ?8 A- X. Y3 y: n1 b" U, ~" D( c5 q  U' K" b2 }  O# Y
- N" i! z7 x+ ?* x7 v! b
SQL> select object_id from dba_objects where object_name='I_BD_INVMANDOC_TS'; OBJECT_ID----------      6393
: \. D+ k# @, b3 }8 \; R* n. ^  ◆此时转储该索引结构1 Q6 `5 |. B4 n( A; Q2 h# V
- p( V4 W! W# q

; e7 _- F& p5 M7 A6 n: r- USQL> ALTER SESSION SET EVENTS 'immediate trace name TREEDUMP level 6393';Session altered.
7 Y) I& _5 U7 u3 Y0 w  ◆下面是trace文件中的片断,我们可以观察到到该索引共有三个层次,每个leaf上约有341条记录。
4 f1 \$ O/ M$ ?5 j6 f+ W0 r. G
6 M( J! g! @3 y) e7 S0 f, B4 a% t  l
/ G+ \( b' C, H; R*** 2005-02-26 10:52:11.458----- begin tree dumpbranch: 0x1403d9c 20987292 (0: nrow: 5, level: 2)   branch: 0x1403f07 20987655 (-1: nrow: 351, level: 1)      leaf: 0x1403d9d 20987293 (-1: nrow: 341 rrow: 341)      leaf: 0x1403d9e 20987294 (0: nrow: 341 rrow: 341)      leaf: 0x1403d9f 20987295 (1: nrow: 341 rrow: 341)......      leaf: 0x1403f00 20987648 (344: nrow: 341 rrow: 341)      leaf: 0x1403f01 20987649 (345: nrow: 341 rrow: 341)      leaf: 0x1403f02 20987650 (346: nrow: 341 rrow: 341)      leaf: 0x1403f03 20987651 (347: nrow: 341 rrow: 341)      leaf: 0x1403f04 20987652 (348: nrow: 341 rrow: 341)      leaf: 0x1403f05 20987653 (349: nrow: 341 rrow: 341)   branch: 0x140406c 20988012 (0: nrow: 350, level: 1)      leaf: 0x1403f06 20987654 (-1: nrow: 341 rrow: 341)      leaf: 0x1403f08 20987656 (0: nrow: 341 rrow: 341)      leaf: 0x1403f0a 20987658 (1: nrow: 341 rrow: 341)      leaf: 0x1403f0b 20987659 (2: nrow: 341 rrow: 341)      leaf: 0x1403f0c 20987660 (3: nrow: 341 rrow: 341)      leaf: 0x1403f0d 20987661 (4: nrow: 341 rrow: 341)...      leaf: 0x1404067 20988007 (345: nrow: 341 rrow: 341)      leaf: 0x1404068 20988008 (346: nrow: 341 rrow: 341)      leaf: 0x1404069 20988009 (347: nrow: 341 rrow: 341)      leaf: 0x140406a 20988010 (348: nrow: 341 rrow: 341)   branch: 0x14041d1 20988369 (1: nrow: 350, level: 1)      leaf: 0x140406b 20988011 (-1: nrow: 341 rrow: 341)      leaf: 0x140406d 20988013 (0: nrow: 341 rrow: 341)      leaf: 0x140406e 20988014 (1: nrow: 341 rrow: 341)...      leaf: 0x14041ce 20988366 (347: nrow: 341 rrow: 341)      leaf: 0x14041cf 20988367 (348: nrow: 341 rrow: 341)   branch: 0x1404336 20988726 (2: nrow: 351, level: 1)      leaf: 0x14041d0 20988368 (-1: nrow: 341 rrow: 341)      leaf: 0x14041d2 20988370 (0: nrow: 341 rrow: 341)      leaf: 0x14041d3 20988371 (1: nrow: 341 rrow: 341) ...      leaf: 0x1404332 20988722 (347: nrow: 341 rrow: 341)      leaf: 0x1404333 20988723 (348: nrow: 341 rrow: 341)      leaf: 0x1404334 20988724 (349: nrow: 341 rrow: 341)   branch: 0x140446f 20989039 (3: nrow: 308, level: 1)      leaf: 0x1404335 20988725 (-1: nrow: 341 rrow: 341)      leaf: 0x1404337 20988727 (0: nrow: 341 rrow: 341)      leaf: 0x1404338 20988728 (1: nrow: 341 rrow: 341)      leaf: 0x1404339 20988729 (2: nrow: 341 rrow: 341) ...      leaf: 0x140446c 20989036 (304: nrow: 341 rrow: 341)      leaf: 0x140446d 20989037 (305: nrow: 341 rrow: 341)      leaf: 0x140446e 20989038 (306: nrow: 73 rrow: 73)----- end tree dump( {, w  _; V! Z, H% g0 n0 d
  注释:通过以上这个跟踪我们可以很清楚的看到B*Tree索引的结构,同时也有助于加深对B*Tree索引的理解。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|Woexam.Com ( 湘ICP备18023104号 )

GMT+8, 2024-6-18 02:16 , Processed in 0.365866 second(s), 22 queries .

Powered by Discuz! X3.4 Licensed

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表