oracle数据库中什么情况下使用基于函数的索引

如题所述

1.
b-tree索引
oracle数据库中最常见的索引类型是b-tree索引,也就是b-树索引,以其同名的计算科学结构命名。create
index语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。
2.
位图索引(bitmap
index)
位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。
3.
基于函数的索引
比如经常对某个字段做查询的时候是带函数操作的,那么此时建一个函数索引就有价值了。
4.
分区索引和全局索引
这2个是用于分区表的时候。前者是分区内索引,后者是全表索引
5.
反向索引(reverse)
这个索引不常见,但是特定情况特别有效,比如一个varchar(5)位字段(员工编号)含值
(10001,10002,10033,10005,10016..)
这种情况默认索引分布过于密集,不能利用好服务器的并行
但是反向之后10001,20001,33001,50001,61001就有了一个很好的分布,能高效的利用好并行运算。
6.hash索引
hash索引可能是访问数据库中数据的最快方法,但它也有自身的缺点。集群键上不同值的数目必须在创建hash集群之前就要知道。需要在创建hash集群的时候指定这个值。使用hash索引必须要使用hash集群。
温馨提示:内容为网友见解,仅供参考
无其他回答

oracle数据库中什么情况下使用基于函数的索引
oracle数据库中最常见的索引类型是b-tree索引,也就是b-树索引,以其同名的计算科学结构命名。create index语句时,默认就是在创建b-tree索引。没有特别规定可用于任何情况。2.位图索引(bitmap index)位图索引特定于该列只有几个枚举值的情况,比如性别字段,标示字段比如只有0和1的情况。3.基于函数的...

Oracle索引的语法分析
用table_name的列、常数、SQL函数和自定义函数创建的表达式。指定column_expression,以后用基于函数的索引查询时,必须保证查询该column_expression不为空。 CLUSTER创建cluster_name簇索引。若表不用schema限制,oracle假设簇包含在你自己的方案中。不能为散列簇创建簇索引。 NOSORT数据库中的行以升序保存...

oracle索引的分类
顾名思义,这是指对列值做了函数之后存储的一种索引方式;聚簇索引和非聚簇索引:这是按照索引与table的关系区分的,如果table中的内容按照索引的顺序存储,则该索引为聚簇索引,否则为非聚簇索引。1.1 B-树索引 B-树索引在oracle中是一个通用索引,在创建索引时它就是默认的索引类型.B树索引可以是...

索引(index)-Oracle高级知识(3)-数据库(23)
索引(index)是Oracle数据库高级知识的重要组成部分。这一知识点涉及内容繁多,需要通过理解、实践和笔记来熟练掌握。索引在关系型数据库中是一种独立的、物理的存储结构,用于对表中一列或多列的值进行排序。它类似于图书的目录,可以根据目录快速找到所需内容。索引的主要作用是提供对表中行的直接和快速访...

oracle索引何时失效的相关推荐
1、在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了。2、新建的表还没来得及生成统计信息,分析一下就好了 3、基于cost的成本分析,访问的表过小,使用全表扫描的消耗小于使用索引。4、使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集...

在oracle数据库中,哪些操作会导致索引失效?
3. **数** - 对索引字段使用内部函数,如计算函数、聚合函数等,会导致索引失效。通常需要建立基于函数的索引。4. **空** - 空值问题,索引不存储空值,若未明确声明索引列为 not null,数据库会认为列存在空值,导致索引失效。5. **运** - 运算操作如加、减、乘、除等直接作用于索引列,会...

关于oracle的索引问题,请问一下这段话的意思是什么,为什么不能使用索引...
5、B-TREE索引里不保存字段为NULL值记录,因此IS NULL不能使用索引。6、Oracle在做数值比较时需要将两边的数据转换成同一种数据类型,如果两边数据类型不同时会对字段值隐式转换,相当于加了一层函数处理,所以不能使用索引。7、给索引查询的值应是已知数据,不能是未知字段值。

oracle 数据库如何建立索引 如何用索引?
--bitmap,创建位图索引 [ASC|DESC],…] | [express])[TABLESPACE tablespace_name][PCTFREE n1]--指定索引在数据块中空闲空间 [STORAGE (INITIAL n2)][NOLOGGING]--表示创建和重建索引时允许对表做DML操作,默认情况下不应该使用 [NOLINE][NOSORT];--表示创建索引时不进行排序,默认不适用,如果...

技术感悟:我对Oracle索引的理解
本文只讲最最平常最最简单的索引 就是以create index ix on tx(a b c);形式创建的索引 而不讲位图索引 反向键索引 倒序索引 基于函数的索引等等 其实呢 只要是基于B树的索引 不管是在Oracle Mysql 还是其它数据库中 原理应当都是一样的 索引最重要的一个性质应该就是有序 索引中的每一项 是从...

Oracle面试题(基础篇)
=符号比较的列将不使用索引,列经过了计算(如变大写等)不会使用索引(需要建立起函数), is null、is not null等优化器不会使用索引 7). 使用Exits Not Exits 替代 In Not in 8). 合理使用事务,合理设置事务隔离性 数据库的数据操作比较消耗数据库资源的,尽量使用批量处理,以降低事务操作次数 7. Oracle中字符...

相似回答