oracle函数索引

简介: 1. 函数索引能够计算出函数或表达式的值,并将其保存在索引中.用于创建索引的函数不能包含任何聚合函数(ggregate function),如果为用户自定义函数,则在声明中必须使用 DETERMINISTIC 关键字。
1. 函数索引能够计算出函数或表达式的值,并将其保存在索引中.用于创建索引的函数不能包含任何聚合函数(ggregate function),如果为用户自定义函

数,则在声明中必须使用 DETERMINISTIC 关键字。

2.要求使用基于成本的优化器.(如果是Choose,则Oracle会自动对分析了的表选择cbo)
3.在自己的模式中的表上创建,须有系统特权query rewrite
在其它模式中的表上创建,须有系统特权global query rewrite
4.要求系统允许重写查询,以及信任一致性的输出
QUERY_REWRITE_ENABLED=TRUE
QUERY_REWRITE_INTEGRITY=TRUSTED
5.如果是自定义的函数(非系统函数),要求函数定义中加关键字:deterministic
6.要求函数具有一致性的输出结果,也就是说,同一函数进行相同的输入,总是得到唯一的输出.例如:函数中不能使用random输出数据.
7.如果有大量的插入和更新,函数索引将会影响性能,据实验,批量插入时,性能降低5倍左右
8.在8.1.7之前不能在函数中使用to_date函数,之后,支持一个解决办法,用关键字deterministic重写自己的to_date函数
9.如果函数是用户写的函数并且需要SQL引擎,则基于函数的索引不支持直接路径装载,例如:imp或exp中不支持使用direct=true参数
如果函数只是系统自带的,例如:upper,则允许.

目录
相关文章
|
1月前
|
SQL Oracle 关系型数据库
[Oracle]索引
本文介绍了数据库索引的基本概念、优化查询的原理及分类。索引是一种数据结构(如B树或B+树),通过排序后的`rowid`来优化查询性能。文章详细解释了索引的构建过程、B+树的特点及其优势,并介绍了五种常见的索引类型:唯一索引、组合索引、反向键索引、位图索引和基于函数的索引。每种索引都有其适用场景和限制,帮助读者更好地理解和应用索引技术。
76 1
[Oracle]索引
|
1月前
|
SQL Oracle 关系型数据库
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
本文介绍了多种SQL内置函数,包括单行函数、非空判断函数、日期函数和正则表达式相关函数。每种函数都有详细的参数说明和使用示例,帮助读者更好地理解和应用这些函数。文章强调了字符串操作、数值处理、日期计算和正则表达式的使用方法,并提供了丰富的示例代码。作者建议读者通过自测来巩固学习成果。
26 1
[Oracle]面试官:你举例几个内置函数,并且说说如何使用内置函数作正则匹配
|
5月前
|
SQL Oracle 算法
|
5月前
|
SQL Oracle 关系型数据库
|
5月前
|
SQL Oracle 关系型数据库
Oracle|内置函数之INSTR
【7月更文挑战第5天】
|
5月前
|
Oracle 关系型数据库 数据挖掘
|
7月前
|
存储 Java 数据库
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数(二)
JAVAEE框架数据库技术之13_oracle 之PLSQL技术及存储过程和函数
82 0
|
5月前
|
Oracle 关系型数据库 数据挖掘
|
6月前
|
存储 Oracle NoSQL
Oracle中decode函数详解
Oracle中decode函数详解
|
6月前
|
Oracle 关系型数据库 大数据
oracle递归函数
oracle递归函数