zoukankan      html  css  js  c++  java
  • 索引的几种扫描方式

    1、索引唯一扫描

      是针对唯一索引的扫描,它仅仅适用于where条件里是 等值查询的目标sql。因为扫描的对象是唯一性索引,索引唯一性扫描的结果最多返回一条记录

     

    2、索引范围扫描

      适用于所有类型的B树索引。

      当扫描对象是唯一性索引时,此时目标sql的where条件一定是范围查询(谓词条件为 between 、<、>);

      当扫描对象是非唯一性索引时,此时目标sql的where条件没有限制(可以是等值,也可以是范围查询)

     

    3、索引全扫描

      适用于所有类型的B树索引。

      要扫描目标索引所有叶子快的所有索引行。索引全扫描需要扫描目标索引的所有叶子快。

      oracle在做索引全扫描时只需要访问必要的分支块等位到该索引最左边的叶子快的第一行索引行,就可以利用该索引叶子块之间的双向指针链表,从左至右一次扫描叶子块的所有索引行

     

    4、索引快速全扫描

      只适合于CBO

      可以单块读可以多快读

      结果集不一定是有序的。因为FFS 时 oracle根据索引行在磁盘上的 物理存储位置 扫描,而不是根据索引行的逻辑顺序扫描。因此结果不一定有序 

     

    5、索引跳跃式扫描

      仅仅适用于那些目标索引前导列的distinct值数量较少、后续非前导列的可选择性有非常好的情形。因为索引跳跃式扫描的执行效率一定会随着目标索引前导列的distinct值数量的递增而递减

     

  • 相关阅读:
    ACM HDU 3910 Liang Guo Sha(数学题,读懂题目)
    防止 7Zip 生成的 ZIP 文件在 Mac OS X 下出现乱码
    NYOJ 506
    Scanner
    String 与StringBuilder
    基于JAVA的聊天室开发
    PS加粗字体
    MySQL相关命令
    Matlab中数据处理和多项式插值与曲线拟合
    dos下进入某一文件
  • 原文地址:https://www.cnblogs.com/iyoume2008/p/6838421.html
Copyright © 2011-2022 走看看