函数索引的概念:
基于函数的索引也是8i以来的新产物,它有索引计算列的能力,它易于使用并且提供计算好的值,在不修改应用程序的逻辑上提高了查询性能。使用基于函数的索引有几个先决条件:
(1)必须拥有QUERY REWRITE(本模式下)或GLOBAL QUERY REWRITE(其他模式下)权限。
(2)必须使用基于成本的优化器,基于规则的优化器将被忽略。
(3)必须设置以下两个系统参数:
QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
可以通过alter system set,alter session set在系统级或线程级设置,也可以通过在init.ora添加实现。
这里举一个基于函数的索引的例子:
函数索引建立及数据准备:
SQL> create index test.ind_fun on test.testindex(upper(a));
创建索引后执行下列语句,使其生效:
exec dbms_stats.gather_table_stats('用户名', '表名');
索引已创建。
比如说:
一般的索引 create index P_IDX ON TABLE1(COLUMN1);
当执行SELECT * FROM TABLE1 WHERE COLUMN1 = XXX 时会用到索引。
函数索引:CREATE INDEX P_IDX ON TABLE1(SUBSTR(COLUMN1,0,5));
当执行SELECT * FROM TABLE1 WHERE SUBSTR(COLUMN1,0,5) = XXX 时会用到索引。
但执行SELECT * FROM TABLE1 WHERE COLUMN1 = XXX时是不会用到索引的
一般情况下是最好不用建函数索引。
分享到:
相关推荐
"Oracle函数大全(CHM格式).rar"这个压缩包显然包含了关于Oracle数据库中各种函数的详细信息,对于学习和查询Oracle函数是非常宝贵的资源。 CHM(Compiled Help Manual)格式是一种由Microsoft开发的帮助文件格式...
索引优化方法有多种,包括重新设计索引、避免系统排序和使用函数索引等。重新设计索引可以避免全表扫描操作,降低资源消耗,缩短执行时间。避免系统排序可以减少排序操作的时间和空间消耗。使用函数索引可以提高查询...
在数据库领域,Oracle和PostgreSQL都是非常知名的开源关系型数据库管理...然而,全面的兼容性不仅限于函数层面,还需要考虑SQL语法、存储过程、触发器、索引、分区表等方面,这需要根据实际情况进行深入研究和规划。
函数索引(Function-Based Index, FBI),是Oracle数据库自Oracle 8i版本引入的一种特殊类型的索引。它允许在创建索引时使用任意内置或用户自定义的函数对表中的列进行处理,从而为特定的查询条件提供更高效的访问...
Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引和唯一索引等。B树索引是最常见的索引类型,适用于大部分场景,其结构使得查找、插入和删除操作的时间复杂度较低。位图索引则适合于值分布稀疏的列,例如...
- **函数索引(Function-Based Index)**: 允许基于函数的结果创建索引,使得对函数结果的查询能利用索引。 - **唯一索引(Unique Index)**: 确保索引键的唯一性,与唯一约束相似,但不强制非空。 - **分区索引...
本资源“ORACLE函数大全CHM”显然是一个针对Oracle数据库中的各种函数的参考手册,旨在帮助开发者和DBA深入理解和使用Oracle的内置函数。CHM文件是一种常见的Windows帮助文档格式,通常包含丰富的文本、索引和搜索...
Oracle数据库中的函数是SQL和PL/SQL编程的重要组成部分,它们被用来处理和转换数据,以满足各种查询和操作的需求。本篇文章将详细讲解Oracle中的单行函数和组函数,特别是如何在实际应用中使用它们。 单行函数是...
在Java中调用Oracle函数并处理返回的Oracle特定数据类型,如集合或索引表,通常涉及到Oracle的PL/SQL包和Java的JDBC驱动。以下是对这个主题的详细说明: 1. **Oracle索引表类型**: Oracle索引表是一种PL/SQL数据...
其次,`Oracle函数大全.chm`是Windows的帮助文件格式,这种格式通常包含更丰富的索引和搜索功能,方便快速查找特定函数。CHM文件可能包含了每个函数的详细语法、参数、返回值以及示例,帮助用户深入理解并实际应用...
- Function-Based索引:基于函数的结果创建索引,索引列是函数的输出。 - Reverse索引:反向键索引,用于存储数据的反向副本,提高某些查询性能。 - Unique索引:确保列中的值是唯一的。 - Index-Organized ...
本篇文章将深入探讨Oracle中的B*Tree索引、反向索引、降序索引、位图索引和函数索引。 1. **B*Tree索引**: - B*Tree索引是Oracle中最常见的索引类型,其结构类似于二叉树,可以高效地处理高基数数据列,即具有...
本资料主要涵盖了两个核心方面:Oracle函数列表速查和Oracle数据字典。 首先,Oracle函数列表速查是数据库管理员和开发人员日常工作中不可或缺的工具。Oracle数据库提供了丰富的内置函数,用于处理各种数据类型,...
Oracle全文索引是Oracle数据库系统中的一个重要特性,它允许用户对数据库中的文本数据进行高效的全文搜索。全文索引使得在海量文本数据中查找特定词汇或短语变得快速且简便,对于那些需要处理大量文本信息的应用程序...
5. INSTR函数:用于在一个字符串中搜索另一个字符串,并返回搜索到的位置索引。例如,INSTR('oracletraining', 'ra')将返回搜索到'ra'的位置。 6. LENGTH函数:返回字符串的长度。例如,LENGTH('Hello')将返回5。 ...
Oracle支持多种类型的索引,包括B树索引、位图索引、函数索引和唯一索引等。其中,B树索引是最常见的一种,它通过分层结构快速定位数据行。位图索引则适合于低基数(即某个字段值较少)的列,通过位图方式存储,节省...
通过以上示例,我们学习了Oracle数据库中索引的基本使用方法以及一些高级特性,如分区表索引、唯一索引、函数索引等。此外,还了解了如何通过实际的数据操作来测试索引的性能效果。这些知识点对于深入理解和掌握...
Oracle 10G是Oracle数据库的一个重要版本,它包含了丰富的函数和特性,为数据库管理和开发提供了强大的支持。本文将深入探讨Oracle 10G中的一些关键函数,旨在帮助你更好地理解和利用这些工具。 1. **数学函数**: ...
### ORACLE CRC32函数详解 #### 一、概述 在Oracle数据库中,`CRC32`函数是一种非常实用的功能,主要用于将字符类型的数据转换为一个唯一的数字类型,这一过程通常被称为散列(Hash)。通过该函数,可以方便地生成...