- 1、本文档共37页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第11章 索引 本章概述 数据库的索引类似于图书的索引。在图书中,索引允许用户不必翻阅整个书就能迅速地找到所需要的信息。在数据库中,索引也允许数据库程序迅速地找到表中的数据,而不必扫描整个数据库。在图书中,索引就是内容和相应页号的清单。在数据库中,索引就是表中数据和相应存储位置的列表。对于包含了大量数据的表来说,如果没有索引,那么对表中的数据检索时速度可能慢得令人难以忍受。 本章将全面介绍Oracle系统的索引内容。 本章要点 理解索引的基本概念 了解索引的优点和缺点 理解修改数据时索引开销 掌握索引联接、压缩和跳跃的特点 了解反转键索引的特点 掌握基于函数索引的特点 理解位图索引的特点 教学过程 11.1 概述 11.2 索引什么时候有用 11.3 索引开销 11.4 索引的联接、压缩和跳跃 11.5 索引和约束 11.6 反转键索引 11.7 基于函数的索引 11.8 位图索引 11.1 概述 索引是一种树状结构,可以通过该结构迅速访问表中的数据。索引可以从逻辑设计和物理实现两个方面来分类。 (1) 从逻辑设计方面来看,主要考虑索引是如何组合的。这种情况下,可以把索引分成单列索引和复合索引、唯一性索引和非唯一性索引、基于函数的索引等类型。 (2) 从物理实现的角度来看,索引可以分为分区索引和非分区索引、B树索引、正向索引和反向索引、位图索引、位图联接索引。 High Water Mark This is a term used with objects stored in the database. If you envision a table for example as a flat structure, as a series of blocks laid one after the other in a line from left to right, the high water mark would be the right most block that ever contained data. For example: 示例 11.2 索引什么时候有用 从上一节的分析中将会发现,利用索引好像远远胜于全表有哪些信誉好的足球投注网站。 然而,用户可能会提出一个相当合理的问题:如果索引这么好,为什么不在所有表的所有列上都使用索引并且利用他们进行操作? 总之,好的索引是选择性索引,它只会引用全部数据量中很少比例的数据。 示例 11.3 索引开销 前面提到过,索引可以提高检索效率,具有高选择性的索引总是比全表有哪些信誉好的足球投注网站更有效地从表中获取数据。但是,索引的出现会对插入操作、更新操作和删除操作带来负面影响。 本节主要介绍索引的开销。 11.3.1 插入行如何影响索引 示例 下面通过一个示例来介绍插入数据是如何影响索引的。为了确保可以在统一层次的领域中操作,重建前面已经存在的表和索引。在如图11-13所示的代码中,首先关闭跟踪开关,然后删除以前创建的indextest表。接下来,基于dba_objects数据字典视图重新创建indextest表,并在该表的object_name列上创建索引。注意,由于pctfree参数的值为0,表示所有的叶子节点都充满了数据。然后对该表进行统计分析。 11.3.2 更新行如何影响索引 11.3.3 DML和索引 前面的介绍已经涉及了DML操作对表索引的潜在影响。在任意给定的时刻,如果进行检查,这样的索引都会包含大量的空余空间,它们的产生可能是由于以前的插入操作所导致的数据块分割,或者也可能是由于更新或删除所导致的大量被废弃的索引项引发。现在,通过前面的示例可知,这些空间都没有丢失,因为如果继续进一步执行DML就可以利用这些空间,或使用新的有效索引项代替废弃的索引项。但是,所采取的具体做法完全依赖于在表上继续执行的DML及其效果。 11.4 索引的联接、压缩和跳跃 现在,用户可能明白了使用索引不一定是好事,因为索引的开销很大。最好的办法是最小化需要在表上创建的索引数量。 下面介绍索引的联接、压缩和跳跃。 1.索引的联接 2. B树索引的键压缩 B树索引的键压缩是从Oracle 8i引入的特性。工作方式如下。 示例,假设,一个表包含了公园和公共场所的细节,各个地方需要实现的风景特点,以及这些工作的细节。 3. 索引的跳跃有哪些信誉好的足球投注网站 索引的跳跃有哪些信誉好的足球投注网站是从Oracle 9i开始引入的功能。它的出现意味着用户不需要再像以前那样担心联接索引中的字段次序,既使用户查询正在选取的字段不是索引的起始列,优化器也可以智能地有哪些信誉好的足球投注网站索引。 优化器能够考虑分支节点所暗示的内容,对叶子节点的内容进行推演。使用跳跃有哪些信誉好的足球投注网站不需要特殊的匹配和设置。然而,它可以让联接索引更加有效
文档评论(0)