`
liwenshui322
  • 浏览: 519288 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

oracle 索引访问方式

 
阅读更多

一. 概述

 

           index unique scan(唯一性索引扫描):返回一个唯一rowid,只有当这个索引的唯一性索引,且我们用等于号作为条件的时候。比如:我们在id上设了一个唯一性索引,SQL语句的条件部分为:where id='123'。那么就会使用唯一性索引扫描,返回一个rowid,然后根据这个rowid去访问数据。

 

         index range scan(索引范围扫描): 返回多于一个rowid,比如:我们在name列上设置一个普通索引,SQL语句的条件部分为where name like ‘liwsh%’。那么就会使用索引范围扫描,从第一个name以liwsh打头的数据开始往后扫描,找到所有name以liwsh打头的rowid. 

 

         index full scan(全表索引扫描):就是遍历这个索引上每一个值,条件是select和where里面的字段都存在于这个索引里面(什么意思呢,就是我们不需要通过索引获取rowid再去读取真正的数据,我们可以在索引里面就得到我们要的数据)。这种扫描方式返回的数据是顺序的,因为是沿着索引的顺序一个一个读取的。因此,这种扫描方式不支持一次读取多个块。我们知道full table scan(全表扫描)支持一次读取多个块。那么,如果查询优化器选择这种扫描方式而不是全表扫描,表明这样扫描更廉价。(另外,这个索引里面必须有一个字段是非空的,在表定义的时候,是非空的。因为索引不存放空值,如果存在空值,就会漏掉。)

 

         index fast full scan(全表索引快速扫描):这种扫描方式支持一次读取多个块与并行读取。因此它返回的数据是无序的。条件跟index full scan一样,查询需要的数据在索引里面就能找到,查询的条件有索引支持。比如:select count(*)一般使用的就是这种扫描方式,如果有order by 字样,那么很有可能就是使用index full scan,因为它返回的数据是有序的。

 

        index skip scan(跳跃式索引扫描):比如我们建立一个复合索引在(sex,employee_id)上面,如果我们执行如下查询,select * from employee where employee_id='101'. 将有可能会是跳跃式索引扫描(在索引前导列sex不同值很少的时候)。这个时候,会根据sex的不同值分成几个区,每一个区再根据employee_id进行跳跃式扫描。如果sex列不同值非常多,那就会是进行全表扫描了,不会走索引了。(返回的是rowid,只有那两种full scan返回的直接就是值)

 

        

0
3
分享到:
评论

相关推荐

    oracle索引类型及扫描方式大整理new

    ### Oracle索引类型详解 #### 一、B\*Tree索引:数据检索的基石 在Oracle数据库中,B\*Tree索引是最常见的索引结构,也是默认创建的索引类型。它基于二叉树原理,由分支块(branch block)和叶块(leaf block)构成,...

    oracle索引,常见索引问题

    Oracle数据库中的索引是优化查询性能的关键工具,它允许快速定位和访问数据。常见的索引类型包括B*树索引和位图索引,每种都有其特定的应用场景和优势。 1. **B*树索引**:这是最常见的索引类型,类似于二叉树结构...

    ORACLE索引详解及SQL优化

    本文将深入探讨Oracle索引的原理、创建方法,并结合SQL优化策略,帮助你提升数据库查询速度,降低资源消耗。 首先,我们要理解索引的基本概念。在数据库中,索引类似于书籍的目录,它为数据提供快速访问的途径。...

    Oracle索引优化相关

    ### Oracle索引优化相关知识点详解 #### 一、基本索引概念 在Oracle数据库中,索引是提高数据检索速度的重要工具。通过查询`DBA_INDEXES`视图,可以获取到当前数据库中所有表的所有索引信息。需要注意的是,如果...

    Oracle索引分析与比较

    Oracle 索引是数据库管理系统中提升数据查询速度的关键组件,尤其在大型企业级应用中,选择合适的索引类型对于数据库性能至关重要。本篇文章将深入探讨Oracle中的B*Tree索引、反向索引、降序索引、位图索引和函数...

    oracle索引使用样例

    ### Oracle索引使用样例详解 #### 一、索引并行创建 在Oracle数据库中,并行创建索引可以显著提高创建索引的速度,尤其是在处理大量数据时。下面的SQL语句展示了如何并行创建一个索引: ```sql CREATE INDEX IDX_GD...

    Oracle索引优化

    Oracle索引优化是数据库性能调优的关键环节,它关乎到数据检索速度和整体系统的效率。在Oracle数据库中,索引的种类繁多,包括B*Tree索引、反向索引、降序索引、位图索引和函数索引等。理解并正确使用这些索引类型...

    Oracle索引的访问方法,如何创建索引、查询索引、使用索引

    Oracle索引的访问方法和创建索引的知识点 Oracle索引的访问方法是一种数据库优化技术,旨在提高查询速度和数据检索效率。索引是一种数据结构,它可以快速定位和检索数据库中的数据。Oracle索引的访问方法包括创建...

    09 oracle的索引 PPT

    Oracle数据库是世界上最广泛使用的数据库系统之一,其性能优化的一个关键因素就是索引的使用。索引可以帮助快速查找和访问数据库中的数据,显著提高查询效率。本篇将详细讲解Oracle数据库中的索引及其重要性。 一、...

    Oracle 索引

    Oracle索引是数据库管理系统中用于加速数据检索的关键结构。它们的工作原理类似于书籍的目录,允许数据库系统快速定位和访问特定的数据行,而无需扫描整个表。Oracle提供了多种类型的索引,包括B树索引、位图索引、...

    Oracle优化全攻略一【Oracle 索引概念】.docx

    总的来说,理解Oracle索引的工作原理并适当使用,是实现数据库高效运行的关键。正确选择和设计索引,避免使用限制索引的因素,能显著提高查询性能,减少数据库响应时间,从而提升整个系统的性能。在实践中,需要结合...

    Oracle数据库索引优化方法探析.pdf

    Oracle 数据库索引是一种数据结构,用于快速访问数据库表的特定信息。通过索引的小 I/O 操作可以替代大的 I/O 操作,达到快速访问的目的。 索引优化方法有多种,包括重新设计索引、避免系统排序和使用函数索引等。...

    Oracle索引详解

    Oracle索引是数据库管理...总之,Oracle索引通过B树结构提供快速的数据访问路径,但需要谨慎管理,以平衡查询性能和存储及维护成本。理解索引的工作原理和结构,对于优化数据库性能和设计高效的数据访问策略至关重要。

    oracle 索引创建.ppt

    Oracle数据库中的索引是提升查询性能的关键工具,它通过创建数据结构使得数据的查找、排序和连接操作更为高效。在“湖南电信Oracle培训之索引创建.ppt”中,我们可推断出讨论的重点是如何在Oracle数据库中创建和理解...

    Oracle 创建索引的基本规则

    - **覆盖索引**: 覆盖索引指的是包含了查询所需所有列的索引,这样可以直接从索引中获取数据而无需访问表本身,可以大大减少I/O操作。 - **索引统计信息更新**: 定期更新索引的统计信息,确保优化器能够做出更准确的...

    oracle中索引的使用

    在数据库中,索引可以加速对表中数据的访问,特别是对于那些频繁进行查询操作的列,创建索引能够显著提高查询速度。 Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引和唯一索引等。B树索引是最常见的...

    oracle的索引学习

    本篇文章将深入探讨Oracle索引的学习,重点关注索引的原理、类型、优缺点以及如何使用和分析执行计划。 首先,理解索引的基本概念。索引是一种特殊的数据结构,它存储在表空间中,用于加速对表数据的访问。当执行...

Global site tag (gtag.js) - Google Analytics