网管联盟 | 网管论坛 | 网管u家 | 网管博客 | 网管软件 | 网管求职 | 小游戏 | 网管搜索 | 网管原创 | 网管聚合 | 网管读摘 | 网管焦点 | 世界素材 | 会员投稿 | 会员中心 
中国网管联盟
Windows Linux Cisco 网络技术 数据库 黑客攻防 DotNet Java PHP 认证 新闻资讯 服务器 存储资讯 网络设备 网管学堂 技术专题 焦点 网吧频道
 当前位置: > bitsCN.com > 数据库技术 > Oracle > 体系架构 > 在9i里对基于函数的索引进行仅索引扫描  

在9i里对基于函数的索引进行仅索引扫描

2004-04-17  作者:BitsCN整理  来源:中国网管联盟  点评 投稿 收藏


  Oracle8i里的仅索引(index-only)执行计划在Oracle9i里得到了加强,所以现在能够提供对基于函数的索引(function-based index,FBI)的支持。Oracle的索引组织表(index-organized table,IOT)是一个很好的例子,能够说明Oracle如何在可能的时候忽略对表格的访问。简而言之,每当Oracle SQL优化器检测到它能够为查询提供服务,而不需要触及表格行的时候,Oracle就会调用一个完整的索引扫描,快速读取索引的每个块,而不需要触及表格本身。
  
  完整索引执行计划要比访问表格更快,其原因有两个:
  
  1.DB_FILE_MULTIBLOCK_READ_COUNT会被调用,以便更快地预先取回索引块。
  2.完整索引扫描能够使用Oracle的平行查询。
  在Oracle9i之前的版本里,只有在索引被创建而且不带有任何NULL值的时候,仅索引扫描才可能被使用。FBI是Oracle8的一个福音,它们事实上能够消除任何不必要的完整表格扫描。由于FBI能够精确地复制查询的WHERE子句里的任何数据列,所以它们一般都被用来确保索引正在服务查询。
  
  为了说明完全索引扫描如何同FBI一起工作,现在让我们来看下面这个关于学生的简单表格:
  
  create table
    student
  (

网管u家u.bitscn@com


    student_name,
    date_of_birth
  );
  
  利用这个表格,我们在表格所有的数据列上创建了一个已连接的FBI:
  
  create index
    whole_student
  on
    student
  (
    initcap(student_name),
    to_char(date_of_birth,'MM-DD-YY')
  );
  
  Oracle9i知道,参照SQL陈述式里这些数据列的任何查询都能够使用完整索引扫描:
  
  select * from student
  where
    initcap(student_name) = 'Jones';
  
  select * from student
  where
    to_char(date_of_birth,'MM-DD=YY') = '04-07-85';
  
  那么,什么时候Oracle会选择完整索引扫描呢?实际上,完整索引扫描是非常少见的,其原因有两个:
  
  1.Oracle9i会要求WHERE子句里的所有判断述词(predicate)都匹配索引里的这些数据列。
  2.任何指定的数据列都有众多的内置函数可用,因此更有可能的情况是:会存在完全匹配查询的索引。
TAGs   索引   进行   扫描   函数   基于   表格   能够   完整   Oracle   查询      
 上一篇:忘却Oracle的5个方面   下一篇:监控和跟踪索引使用情况
相关文章列表
在9i里对基于函数的索引进行仅索引扫描 评论:
loading.. 评论加载中…
评论:请自觉遵守互联网相关政策法规,评论不得超过250字。

验证码: 注册用户
本类热门排行:
1.Oracle基本数据类型内部存储格式-体系架
2.从一条select语句看Oracle数据库查询工作
3.讲解SQL Server定时作业job的设置方法-体
4.Oracle数据库ASM功能详解-体系架构
5.Oracle商务智能套件-体系架构
6.Oracle 10g进程体系学习总结-体系架构
7.数据泵用法详解-体系架构
8.Oracle数据库中获取数据的存储过程示例-
9.sqlplus的autotrace的设置-体系架构
10.Oracle的概念和术语-体系架构
最新推荐文章:
1.数据质量体系结构介绍-体系架构
2.深入讲解"database link"的设置和使用-体
3.讲解Oracle移动数据文件到新分区的过程-
4.提防网络隐患 保护Oracle数据
5.Oracle内存数据库 - TimesTen
6.专家解答 充分认识和利用Oracle 11g
7.Oracle SOA平台之SOA套件概述
8.简析Oracle数据库最大可用性体系结构
9.Oracle体系框架及SQL语句性能探讨
10.了解Oracle存储过程中的角色
网管论坛交流:
·大家来开心一下吧---看了会很开心的东西-
·中国人不可不知道的知识
·@@小鹏◎◎小鹏同志与某位女明星亲密接触
·◎◎小鹏◎◎发现不明生物,居然正在交配
·[图文]^^^版主是什么?????
·泡论坛的女人是好女人
·做个“水性杨花”的女人
·献给mm俱乐部的所有mm
·深圳一集团企业电脑基础应用培训教程
·■■■■十一遊玩照■■■■■