关于Oracle索引建立的几个注意要点

创建索引的优点:
1、创建索引的最主要的原因是可以大大加快数据的检索速度。
2、可以加速表和表之间的连接。
3、在使用分组和排序子句进行数据检索时,同样可以显着减少查询中分组和排序的时间。
4、通过使用索引,可以在查询的过程中,使用优化隐藏器,提高系统的性能。

创建索引的缺点:
1、索引需要占物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间
2、当对表中的数据进行增加、删除和修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

创建索引的原则:
1、在WHERE子句中最频繁使用的字段
2、联接语句中的联接字段
3、选择高选择性的字段

位图索引:处理键值重复率比较高的字段比较适合使用;特定类型的查询下性能很高。比如,要对一个结果集进行count操作,特别是在SQL语句的条件部分,在很多字段之间存在着逻辑“与”、“或”运算的查询方式。
create bitmap index index_name on table_name(column_name);

时间: 2024-10-31 08:07:04

关于Oracle索引建立的几个注意要点的相关文章

oracle 索引

在关系数据库中,索引是一种与表有关的数据库结构,它可以使对应于表的SQL语句执行得更快.索引的作用相当于图书的目录,可以根据目录中的页码快速找到所需的内容.  对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分.   索引分类: 逻辑分类 single column or concatenated    对一列或多列建所引 unique or nonunique  唯一的和非唯一的所引,也就是对某一列或几列的键值(

数据-oracle 索引 求大神!!!

问题描述 oracle 索引 求大神!!! 有表emp,共有一百万行数据,但其中的emp.deptno列,数据只有4种不同的值,如10.20.30.40,其中有99万行对应着值10,5000行对应值20,3000行对应值30,2000行对应值40. 请问如果建立索引,让查询10外的其它deptno值搜索时,毫无疑问,如果索引能被应用, 解决方案 数据值比较少但记录较多,这种情况最高效的办法当然是对表分区,但100万其实也说不上多,直接对这个字段建索引问题也不大

oracle索引介绍(图文详解)_oracle

对于数据库来说,索引是一个必选项,但对于现在的各种大型数据库来说,索引可以大大提高数据库的性能,以至于它变成了数据库不可缺少的一部分. 索引分类:逻辑分类single column or concatenated  对一列或多列建所引unique or nonunique 唯一的和非唯一的所引,也就是对某一列或几列的键值(key)是否是唯一的.Function-based  基于某些函数索引,当执行某些函数时需要对其进行计算,可以将某些函数的计算结果事先保存并加以索引,提高效率. Doman 

Oracle 索引扫描的五种类型

Oracle 索引扫描的五种类型 (1)索引唯一扫描(INDEX UNIQUE SCAN) LHR@orclasm > set line 9999 LHR@orclasm > select * from scott.emp t where t.empno=10;   Execution Plan ---------------------------------------------------------- Plan hash value: 2949544139   -----------

Oracle索引的监控

Oracle索引的监控   一.1  BLOG文档结构图     一.2  前言部分   一.2.1  导读和注意事项 各位技术爱好者,看完本文后,你可以掌握如下的技能,也可以学到一些其它你所不知道的知识,~O(∩_∩)O~: ① 掌握oracle中索引的监控方法 ② sys.col_usage$的初步了解     Tips: ① 本文在ITpub(http://blog.itpub.net/26736162)和博客园(http://www.cnblogs.com/lhrbest)有同步更新 ②

ORACLE 索引和MYSQL INNODB 辅助索引对NULL的处理区别

ORACLE 索引和MYSQL INNODB 辅助索引对NULL的处理 我们清楚ORACLE中的b+索引是对键值的NULL进行存储的,以致于我们 IS NULL这种肯定是用不到索引的, 当然这提及的ORACLE表为堆表,索引为单列B+树索引,(有一种优化方式为建立组合索引如create index xx on tab(a,'1') 这样来保证索引记录NULL值 这样DUMP出来为 ..... row#11[7886] flag: ------, lock: 2, len=12 col 0; NU

大数据-Oracle索引不生效是什么情况

问题描述 Oracle索引不生效是什么情况 原本的表没有设置索引,数据大约是5000多W.后来因为查询性能太差,决定优化,准备在某个唯一列上建一个索引.首先从原表导了1500W数据进行测试,测试时不加索引查一条记录大约一分钟.后来加了个Normal索引,查询时间在2秒以内,觉得很满意,所以按照相同结构又建了个表,用的一样的数据,准备再试验一次,查了查,确实慢,遂也给加上Normal索引,但是这回查询性能没变化了...怎么查都是一分钟左右.谁能给我讲讲为什么???

Oracle索引表的使用(Table Index)

oracle|索引 create or replace procedure proc_XXX(        p_iBillMonth    in  number,        p_tab           in  number,                p_nStatus       out number,        p_szErrorMsg    out varchar2) is        type t_cur is ref cursor;        v_ser    

Oracle索引扫描的4个类别

学习Oracle时,你可能会遇到Oracle索引扫描问题,这里将介绍Oracle索引扫描问题的解决方法,在这里拿出来和大家分享一 下.根据索引的类型与where限制条件的不同,有4种类型的Oracle索引扫描: ◆索引唯一扫描(index unique scan) ◆索引范围扫描(index range scan) ◆索引全扫描(index full scan) ◆索引快速扫描(index fast full scan) (1) 索引唯一扫描(index unique scan) 通过唯一索引查