使用Oracle函数索引 提高查询效率

数据库 Oracle
想要提高Oracle数据库的查询检索的效率,使用函数索引无疑是一个非常好的方法。下文对Oracle函数索引的使用作了详尽的阐述,供您参考。

使用Oracle函数索引,无疑是提高查询效率的有效方法之一。下面就为您详细介绍Oracle函数索引的使用方法,希望对您能有所帮助。

谈到任何对列的操作都可能导致全表扫描,例如:

  1. select * from emp where substr(ename,1,2)=’SM’; 

但是这种查询在客服系统又经常使用,我们可以创建一个带有substr函数的基于Oracle函数索引,

  1. create index emp_ename_substr on eemp ( substr(ename,1,2) ); 

但是这种查询在客服系统又经常使用,我们可以创建一个带有substr函数的Oracle函数索引,

  1. create index emp_ename_substr on eemp ( substr(ename,1,2) ); 

这样在执行上面的查询语句时,这个基于函数的索引将排上用场,执行计划将是(INDEX RANGE SCAN)。
上面的例子中,我们创建了基于函数的索引,但是如果执行下面的查询:

  1. select * from emp where substr(ename,1,1)=’S’ 

得到的执行计划将还是(TABLE ACCESS FULL),因为只有当数据列能够等式匹配时,基于函数的索引才能生效,这样对于这种索引的计划和维护的要求都很高。请注意,向表中添加索引是非常危险的操作,因为这将导致许多查询执行计划的变更。然而,如果我们使用基于函数的索引就不会产生这样的问题,因为Oracle只有在查询使用了匹配的内置函数时才会使用这种类型的索引。
 

 

 

【编辑推荐】

oracle函数返回表的实现

带您了解Oracle FBI索引

详解Windows下卸载Oracle数据库

详解Oracle多种表连接方式

oracle中使用SQL递归语句的例子

责任编辑:段燃 来源: 互联网
相关推荐

2010-04-07 17:45:22

Oracle位图索引

2010-11-15 16:46:49

Oracle查询效率

2020-09-07 10:23:01

MySQL索引查询

2021-01-14 05:13:34

倒排索引搜索

2011-07-27 17:22:10

mysql极限测试索引

2010-07-08 17:28:02

2010-05-26 08:47:00

索引SQL Server

2012-07-06 09:00:34

MySQL

2010-10-27 14:15:44

Oracle数据库效率

2011-08-16 13:27:34

索引

2011-08-15 18:20:05

建立索引SQL Sever数据

2015-11-02 17:11:38

RelProxyJava开发效率

2020-09-07 13:05:17

MySQL面试索引

2010-06-10 13:54:10

MySQL全文搜索

2010-04-23 16:35:02

Oracle 查询记录

2010-06-30 13:49:02

SQL Server数

2010-11-12 11:25:44

SQL SERVER视

2010-04-13 15:14:31

Oracle优化

2021-07-18 07:45:04

物联网资产IOT
点赞
收藏

51CTO技术栈公众号