首页 | 互联网 | IT动态 | IT培训 | Cisco | Windows | Linux | Java | .Net | Oracle | 软件测试 | C/C++ | 嵌入式开发 | 存储世界 | 服务器
网络设备 | IDC | 安全 | 求职招聘 | 数字网校 | 网页设计 | 平面设计 | 技术专题 | 电子书下载 | 教学视频 | 源码下载 | 搜索 | 博客 | 论坛
中国IT实验室Oracle频道
中国IT教育
Google
首页 入门基础 安装配置 体系架构 PLSQL 备份恢复 性能调优 开发技术 资讯动态 考试认证 下载 专题 讨论
您现在的位置: 中国IT实验室 >> Oracle >> 开发技术 >> 正文

转储"B*Tree"索引的分支结构

  我们知道,Oracle允许对B*Tree索引进行转储,用来显示"B*Tree"的层次结构。下面我们来介绍一个具体的实例以此来进行细化的分析:

  ◆首先我们需要选择要研究的索引

SQL> select index_name from user_indexes where index_name='I_BD_INVMANDOC_TS';

INDEX_NAME
------------------------------
I_BD_INVMANDOC_TS

  ◆然后再找到此索引的"object_id"

SQL> select object_id from dba_objects where object_name='I_BD_INVMANDOC_TS';

 OBJECT_ID
----------
      6393

  ◆此时转储该索引结构

SQL> ALTER SESSION SET EVENTS 'immediate trace name TREEDUMP level 6393';

Session altered.

  ◆下面是trace文件中的片断,我们可以观察到到该索引共有三个层次,每个leaf上约有341条记录。

*** 2005-02-26 10:52:11.458
----- begin tree dump
branch: 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

  注释:通过以上这个跟踪我们可以很清楚的看到B*Tree索引的结构,同时也有助于加深对B*Tree索引的理解。

【责编:John】

中国IT教育

相关产品和培训
文章评论
 友情推荐链接
 认证培训
 专题推荐

 ·关于Java框架技术专题
 ·XML全攻略技术专题
 ·JAVA开源技术介绍专题
 ·Java嵌入式开发之J2ME技术专题
 ·超前体验 Oracle 11g的5个新特性…
 ·揭密使用VB.NET的五个实用技巧
 ·Oracle和SQL Server常用函数对比专题…
 ·展现C#世界 C#程序设计专题…
 ·Java入门 Tomcat的配置技巧精华专题…
 ·Oracle RMAN物理备份技术详解…
 今日更新
 社区讨论
 博客论点
 频道精选
 Oracle频道相关导航