Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103643729
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-04 12:22:54

来源:赛迪网    作者:shunv

在Oracle里除了我们常用的B树索引外,还有一些特殊索引能被使用。

如:倒序索引,位映射索引,函数索引等。

倒序索引:

Oracle DOC上说倒序索引比较适合于序列号产生的字段,如唯一编号。

但是这样的索引对于范围的比较,如 > < between ... and ... 等操作是不起作用的;

只对 = in 等操作才会调用索引。

所以一般的自动增长的PK字段还是用常规B树索引好一些。

位映射索引:

适合于唯一记录数较少,DML操作较少的字段。如历史数据表里的类别字段。

它可以减少索引存储空间的占用,并提高访问速度。

最好在查询时加提示/*+ first_rows */ 或者 /*+ index(表名 索引名)*/ 确认使用位映射索引。

函数索引:

需要修改数据库里面两个动态参数:

QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED

函数索引才会在有提示/*+ first_rows */ 或者 /*+ index(表名 索引名)*/ 时被使用。

阅读(428) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~