`
445822357
  • 浏览: 731253 次
文章分类
社区版块
存档分类
最新评论

使用索引快速全扫描(Index FFS)避免全表扫描的若干场景

 
阅读更多

使用索引快速全扫描(IndexFFS)避免全表扫描(FTS)

(文档 ID 70135.1)


什么使用使用Index FFS比FTS好?

Oracle 8的Concept手册中介绍:

1. 索引必须包含所有查询中参考到的列。

2. Index FFS只能通过CBO(Index hint强制使用CBO)获得。

3. Index FFS使用hint:/*+ INDEX_FFS() */。


Index FFS是在7.3中引入的。在Oracle 7中,它要求初始化参数V733_PLANS_ENABLED的值需要是TRUE。

Index FFS将会扫描索引的全部块。返回的数据不会存储。Index FFS能够使用多块IO读,可以并行执行,就像全表扫描那样。


实例

使用Oracle 8.0.5中标准的emp和dept表(可以使用UTLSAMPL.SQL创建),不建立任何表的统计数据或索引。使用autotrace产生执行计划。

准备工作:创建一个复合索引

create index emp_ix on emp(empno, deptno, ename);



查询单个表,查询出索引的全部列

SQL> select /*+ INDEX_FFS (emp emp_ix) */ empno, deptno, ename from emp;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT ptimizer=CHOOSE (Cost=4 Card=21 Bytes=693)
   1    0   INDEX (FAST FULL SCAN) OF 'EMP_IX' (NON-UNIQUE) (Cost=4 Ca
          rd=21 Bytes=693)


查询单个表,索引列放在select或where子句中

SQL>  select /*+ INDEX_FFS (emp emp_ix) */ empno, ename from emp 
      where deptno > :bind1;

Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT ptimizer=CHOOSE (Cost=4 Card=2 Bytes=66)
   1    0   INDEX (FAST FULL SCAN) OF 'EMP_IX' (NON-UNIQUE) (Cost=4 Ca
          rd=2 Bytes=66)


查询索引的所有列,以及不再索引中的列

SQL> select /*+ INDEX_FFS (emp emp_ix) */ empno, ename from emp 
     where deptno > :bind1 and sal <:bind2;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT ptimizer=CHOOSE (Cost=1 Card=1 Bytes=46)
   1    0   TABLE ACCESS (FULL) OF 'EMP' (Cost=1 Card=1 Bytes=46)

注意:CBO选择FTS,因为Index FFS不能满足查询所有列。



查询复合索引中的部分列

SQL> select /*+ INDEX_FFS (emp emp_ix) */  ename from emp;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT ptimizer=CHOOSE (Cost=4 Card=21 Bytes=147)
   1    0   INDEX (FAST FULL SCAN) OF 'EMP_IX' (NON-UNIQUE) (Cost=4 Ca
          rd=21 Bytes=147)
注意:如果查询中是索引列的子集,仍会选择Index FFS。


包含join的查询

SQL> select  /*+ INDEX_FFS ( e emp_ix) */  e.ename, d.dname 
     from emp e , dept d
     where e.deptno=d.deptno;
Execution Plan
----------------------------------------------------------
   0      SELECT STATEMENT ptimizer=CHOOSE (Cost=6 Card=4 Bytes=168)
   1    0   HASH JOIN (Cost=6 Card=4 Bytes=168)
   2    1     INDEX (FAST FULL SCAN) OF 'EMP_IX' (NON-UNIQUE) (Cost=4
          Card=21 Bytes=420)
   3    1     TABLE ACCESS (FULL) OF 'DEPT' (Cost=1 Card=21 Bytes=462)
分享到:
评论

相关推荐

    FFS快速文件分享系统 MYSQL版 v4.4.rar

    FFS-M快速文件分享系统,基于MYSQL驱动,所以运行此程序前,请检查您的PHP是否支持MYSQL。 FFS-M V4.4正式版功能 伪静态功能(无需服务器相关组件支持) 老版本浏览器自动提示升级浏览器 智能下载核心(实现下载...

    FFS快速文件分享系统 4.4 MySQL.rar

    FFS快速文件分享系统(Fast file system),FFS的开发始终贯彻“简单,高效,实用”的理念,采用了当前公认高效率的PHP编程语言编写系统内核,先后开发更新 了多个版本,每一版本都比前一版本做了大量的改进,并融入...

    FFS快速文件分享系统 v4.0.rar

    FFS的最新版本目前是第4版,吸纳了FFS3用户提供的大量改进建议,是一个全面革新的版本,同是也采用了诸多的新技术。 面向用户: 三步完成文件上传,分享,管理,使用方法依旧简单。 CSS技术提供更快的访问速度和...

    FFS快速文件分享系统 BLSQL版 v4.2.rar

    FFS的最新版本目前是第4版,吸纳了FFS3用户提供的大量改进建议,是一个全面革新的版本,同是也采用了诸多的新技术。 面向用户: 三步完成文件上传,分享,管理,使用方法依旧简单。 CSS技术提供更快的访问速度和...

    FFS5-Mini 文件存储分享系统 v120731 最终版

     FFS5-Mini作为FFS5核心的延伸产品,拥有了FFS5的全部高级特性,其中包括修复所有已知错误 此版本为FFS MINI VEER120731此为FFS5系列最终版,包含所有已有扩展安装步骤:直接进入根目录即可进入安装程序,请确保...

    FFS快速文件分享系统 SQLite版 v4.3.rar

    FFS的最新版本目前是第4版,吸纳了FFS3用户提供的大量改进建议,是一个全面革新的版本,同是也采用了诸多的新技术。 面向用户: 三步完成文件上传,分享,管理,使用方法依旧简单。 CSS技术提供更快的访问速度和...

    FFS Firewall v1.3.zip

    FFS Firewall是一款基于PHP编写的,轻量级的,免费的,开源的,应用程序防火墙,能够为...使用本程序之前请务必阅读使用说明和使用协议。 2011-10-31 V1.3 修正拦截访问后未及时中断的问题。 控制面板的一些JS问题。

    FFS-M快速文件分享系统MYSQL版 v4.1.rar

    FFS-M快速文件分享系统,基于MYSQL驱动,所以运行此程序前,请检查您的PHP是否支持MYSQL。 PS:之后将会发布BLSQL版。 FFS-M V4.0正式版功能 伪静态功能(无需服务器相关组件支持) 老版本浏览器自动提示升级浏览器 ...

    完整版 NVMeExpressDxE.ffs.ffs

    亲测好用,挺不错的资源,大家快来下载吧!挺有用的!需要的话可以来下载哦!作者使用过,在修改过的华硕p8z777-v lx bios上成功实现在m.2 nvme支持。有需要的朋友快下载吧。

    FFS上传环境检测工具 v1.0.rar

    FFS上传环境服务器检测程序其实是一款探针程序,专用于 想做网盘的用户,能够检测出服务器的上传环境配置,在你 打算购买某虚拟主机或服务器之前,或者准备部署网盘程序, 使用此程序检测服务器上传环境,可以...

    FFS快速文件分享系统 MYSQL版 v4.4

    FFS-M快速文件分享系统,基于MYSQL驱动,所以运行此程序前,请检查您的PHP是否支持MYSQL。FFS-M V4.4正式版功能伪静态功能(无需服务器相关组件支持)老版本浏览器自动提示升级浏览器智能下载核心(实现下载限速,...

    汽车SBW之FFS系统的仿真分析

    汽车SBW之FFS系统的仿真分析,王晓明,吴海波,在简述汽车转向及线控技术的发展之后,介绍了汽车线控转向系统的基本架构,分析了力反馈(FFS)系统的重要作用。在力反馈系统数学模�

    Oracle实战优化器

    索引范围搜索(Index Range Scan),或者是全索引扫描(INDEX fastfullscan,INDEX_FFS); 如果是表于表之间连接的时候,它会负责让表之间以一种什么样子的形式来关联,比如 HASH_JOIN 还是NESTED LOOPS 或者是MERGE ...

    快速文件分享系统 ffs5-mini 111105

    FFS5-Mini作为FFS5核心的延伸产品,拥有了FFS5的全部高级特性,其中包括。 #参数自动化:程序核心自动处理主要数据。程序即传即用。 #无限制扩展:专门研制的MoreFile(魔方)框架存储系统框架,拥有操作系统般的...

    ffs-provisionee-sdk

    亚马逊FFS SDK 快速配网

    NVMeExpressDxE.ffs

    作者使用过,在修改过的华硕p8z777-v lx bios上成功实现在m.2 nvme支持。有需要的朋友快下载吧。

    通用NVME模块.ffs

    老主板BIOS H61 H81 支持PCIE 固态硬盘 NVME模块 驱动

    PHP实例开发源码-FFS php快速文件分享系统 MYSQL版.zip

    PHP实例开发源码—FFS php快速文件分享系统 MYSQL版.zip PHP实例开发源码—FFS php快速文件分享系统 MYSQL版.zip PHP实例开发源码—FFS php快速文件分享系统 MYSQL版.zip

    基于PHP的FFS php快速文件分享系统 MYSQL版.zip

    基于PHP的FFS php快速文件分享系统 MYSQL版.zip

Global site tag (gtag.js) - Google Analytics