网站首页
JSP空间
动态资讯
开源项目
技术文档
资源下载
J2EE资源
客户论坛
在线支付
 
  技术文档>>数据库技术>>Oracle技术>>Oracle开发>查看文档  
  解析:索引跳跃式扫描 (index skip scan)     
  文章作者:未知  文章来源:赛迪网技术社区  
  查看:120次  录入:管理员--2007-11-15  
 

oracle9i有的一个新的执行特性索引跳跃式扫描(index skip scan),它适用于使用连接索引和访问多值索引的oracle查询。让我们仔细看一下下面的例子。请注意到以下代码包含着连接索引:

 create index
    sex_emp_id
  on
    emp (sex, emp_id)
  ; 
 

在oracle9i版本之前,当sql查询中包含性别和emp_id时,或者查询指定性别行的时候才可以使用这一索引。下面的查询不能够使用连接索引:

select
    emp_id
  from
    emp
  where
    emp_id = 123;

oracle9i的索引跳跃式扫描执行规则允许使用连接索引,即使sql查询中不指定性别。这一特性使得无需在emp_id行中提供第二个索引。oracle承认索引跳跃式扫描没有直接索引查询速度快,但可以这样说,相比于整个表扫描(table scan),索引跳跃式扫描的速度要快得多。

当oracle没有指明索引跳跃式扫描的内部内容时,我们可以从它的执行规则中判断出,oracle在内部上生成了多个查询,这样就满足带有多个子查询的查询。

select statement optimizer=choose (cost=6 card=1 bytes=5)
0 sort (aggregate)
1 index (skip scan) of 'sex_emp_id' (non-unique)

在内部里,oracle生成了两个查询,并连接结果的rowid表。

selectemp_name from emp_where sex = 'f' and emp_id = 123
union
select emp_name from emp_where sex = 'm' and emp_id = 123;

使用索引跳跃式扫描的内涵就变得很清晰。

对于高顺序键(high order key)中的独特值数目,oracle的索引跳跃式扫描性能将会降低。如果主列有50个值,oracle要发出50条查询才能找回结果。

注释:索引跳跃式扫描只适用于硬盘空间和存储空间相当紧缺的情况。

 
 
上一篇: 细化解析:oracle数据库的空间使用和管理    下一篇: 教你轻松掌握oracle与foxpro的数据转换
  相关文档
在oracle数据库中移动数据文件的具体方法 08-04
oracle ebs 11.5 for linux as4安装心得 08-08
不影响primary database也可以打开standby 02-28
教你通过sql语句获取数据库的基本信息 07-29
statspack监控管理:定期清除1个月的数据 02-28
教你快速掌握"patindex"函数的使用方法 07-01
非阻塞算法思想在数据库开发中的应用 01-25
详细讲解oracle数据库10g rman的备份过程 05-07
oracle数据库定时jobs作业的使用方法 08-04
使用type方式,解决in列表过长的问题 (1) 02-27
oracle 10g分区表维护中的两个注意事项 04-30
融会贯通oracle数据库的25条基本知识 02-29
你对Oracle数据库字符集究竟认识多少? 07-07
在线日志文件都是active或current的现象 02-26
解析Oracle 准备开发的文件系统 Btrfs 09-01
三步教会你掌握oracle外表(external table) 08-18
一些可以预见的oracle应用程序性能调优 (1) 03-31
深入讲解oracle 11g中的一些实用新特性 (1) 01-30
讲解为用户提供对回滚操作时间准确评估 06-10
Oracle数据库手工扩大表空间三步走 04-11
返回首页 | 关于我们 | J网章程 | JSP空间合租 | 客服中心 | 免责声明 | 常见问题 | 参观机房
本站主机空间代理至厦门市华众网络科技有限公司
《中华人民共和国增值电信业务经营许可证》
编号:闽B2-20050079
@2005-2008福建JSP技术网 版权所有 闽ICP备05000928号
厦门(总部):13616026886 福州:0591-87655121
邮箱:admin@fjjsp.com 站长QQ,点击这里给我发消息