WEB开发网
开发学院数据库Oracle Oracle数据库中索引树的结构与块尺寸 阅读

Oracle数据库中索引树的结构与块尺寸

 2007-05-12 12:22:29 来源:WEB开发网   
核心提示:关于Oracle索引树的结构以及它们对Oracle性能调优是否重要存在大量的、激烈的争论,而且已经有很多文章试图来描述这些重要的Oracle性能工具的内部工作机制,Oracle数据库中索引树的结构与块尺寸,关于这个论题也出现了一些新书,例如由“国际Oracle用户组”(IOUG)主席Kim Fl

关于Oracle索引树的结构以及它们对Oracle性能调优是否重要存在大量的、激烈的争论,而且已经有很多文章试图来描述这些重要的Oracle性能工具的内部工作机制。关于这个论题也出现了一些新书,例如由“国际Oracle用户组”(IOUG)主席Kim Floss所著的《Oracle索引管理秘诀》和《Oracle SQL 性能调优和“基于代价的优化器”内幕》。

正如我们知道的,Oracle提供了大量索引结构,每种索引结构都有其好处和不足:

* B树索引。从最早的Oracle发行版本开始,Oracle就一直使用的标准树索引就是B树索引。

* 位图索引。当某个索引列含有很少数量的不同的值(即低基数)时,使用位图索引。这对于那些只读数据库而言速度超快,但对需要经常性更新的系统不适合。

* 位图连接索引。这是针对来自其他表的数据列出现在某个连接表的多列索引时使用的索引。下面是在from子句和where子句中使用类似SQL的创建索引的惟一语法。

create bitmap index
  part_suppliers_state
on
  inventory( parts.part_type, supplier.state )
from
  inventory i,
  parts   p,
  supplier s
where
  i.part_id=p.part_id
and
  i.supplier_id=p.supplier_id;

尽管有关索引重建的争论仍在激烈进行着,但还是存在每个人都认可的索引管理的某些领域。在内部机制上,一个Oracle B-树索引的结构和一个UNIX I-结点的结构非常相似。索引中的每个数据块都是索引树中的一个结点,位于最底部的结点(叶数据块)包含一对符号键和行ID值。

Oracle b-树索引

为了正确管理这些数据块,Oracle控制着每个数据块中指针的分配。随着一棵Oracle树的增长(通过往表里插入新行),Oracle会填充这个数据块,当这个数据块满时Oracle会分裂它,创建新的索引结点(数据块)来管理索引内的符号键。

1 2 3 4  下一页

Tags:Oracle 数据库 索引

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接