oracle索引的理解

1、当查询表时where条件中有多个索引时,优先使用主键索引,其它索引会失效。

2、当查询的返回的数据占总量数据的百分比小于20%时,建索引才有效果

3、不是主键的索引值可以为空,主键索引不能为空。

4、

容易引起oracle索引失效的原因很多:

1)、在索引列上使用函数。如SUBSTR,DECODE,INSTR等,对索引列进行运算.需要建立函数索引就可以解决了。

2)、新建的表还没来得及生成统计信息,分析一下就好了

3)、基于cost的成本分析,访问的表过小,使用全表扫描的消耗小于使用索引。

4)、使用<>、not in 、not exist,对于这三种情况大多数情况下认为结果集很大,一般大于5%-15%就不走索引而走FTS。

5)、单独的>、<。

6)、like "%_" 百分号在前。

7)、单独引用复合索引里非第一位置的索引列。

8)、字符型字段为数字时在where条件里不添加引号。

9)、当变量采用的是times变量,而表的字段采用的是date变量时.或相反情况。

10)、索引失效,可以考虑重建索引,rebuild online。

11)、B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null  都会走、联合索引 is not null 只要在建立的索引列(不分先后)都会走。

时间: 2024-10-13 07:13:06

oracle索引的理解的相关文章

【Oracle】Oracle索引

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

5.oracle的dump理解五 数据块理论

5.oracle的dump理解五 数据块理论 欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/51228514 前两篇描述了我们在操作层面看到的一些东西,但是没有理论指导,看到越多我们只会越迷糊.所以,蛤蟆从官方文档上摘取一些老少皆宜的内容来补脑. 块是数据块IO的最小单位. 1     数据块和操作系统块 从物理层面,数据库的块存储时候是由操作系统块组成.操作系统块是操作系统可以读写的最小数据单位.ORACLE块是一个逻辑存

Oracle索引梳理系列(八)- 索引扫描类型及分析(高效索引必备知识)

版权声明:本文发布于http://www.cnblogs.com/yumiko/,版权由Yumiko_sunny所有,欢迎转载.转载时,请在文章明显位置注明原文链接.若在未经作者同意的情况下,将本文内容用于商业用途,将保留追究其法律责任的权利.如果有问题,请以邮箱方式联系作者([email protected]). 理解oracle索引扫描类型的特点以及具体触发的条件,对于通过合理地使用索引,进行sql优化至关重要(例如组合索引的引导列的选择问题). 在总结索引扫描类型前,需要再次强调关于索引特

Oracle索引技术研究

Oracle索引类型 B树索引 特定类型索引 确定索引列 主键和唯一键值列的索引 外键索引 其他合适的索引列 B树索引 B树索引算法 B树是指B-tree(Balanced Tree),B树的存在是为了存储设备而设计的一种多分叉的树.B树中 每个节点至多含有m个子节点 每个非叶子节点除了根节点之外至少含有⌈m/2⌉个子节点 根节点至少含有2个子节点否则它是叶子节点 有k个子节点的非叶子节点包含k-1个键值 所有叶子节点出现在同一层 其中,m称为该B树的阶,一个3阶B树的节点的排列如同 [指针]键

Oracle 索引 简介

1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX <schema>.<index_name> ON <schema>.<table_name> (<column_name> | <expression> ASC | DESC, <column_name> | <expression> ASC | DESC,...) TABLESPACE <tablespace_name>

Oracle索引

Oracle索引,码迷,mamicode.com

oracle索引总结

永不放弃,一切皆有可能!!! 只为成功找方法,不为失败找借口! oracle索引总结 简介 1.说明 1)索引是数据库对象之一,用于加快数据的检索,类似于书籍的索引.在数据库中索引可以减少数据库程序查询结果时需要读取的数据量,类似于在书籍中我们利用索引可以不用翻阅整本书即可找到想要的信息. 2)索引是建立在表上的可选对象:索引的关键在于通过一组排序后的索引键来取代默认的全表扫描检索方式,从而提高检索效率 3)索引在逻辑上和物理上都与相关的表和数据无关,当创建或者删除一个索引时,不会影响基本的表:

【转】Oracle索引HINT的使用

转自:Oracle索引HINT的使用       存储在数据库中数据的分布情况开发人员或管理员比Oracle优化器更加的清楚,在优化器不能作出最有查询路径选择的情况下,使用HINT(提示)人为的固定查询路径,一定程度能生成更优的执行计划.         在SQL的查询过程中,索引是快速查询数据的方法之一,是最重要.最常见的手段,这篇文章将讨论和索引相关的HINT的使用. 1.HINT的使用方法: select /*+ INDEX (tab pk_tab)*/ * from test.tab;

[转]Oracle 索引质量分析

http://blog.csdn.net/leshami/article/details/23687137 索引质量的高低对数据库整体性能有着直接的影响.良好高质量的索引使得数据库性能得以数量级别的提升,而低效冗余的索引则使得数据库性能缓慢如牛,即便是使用高档的硬件配置.因此对于索引在设计之初需要经过反复的测试与考量.那对于已经置于生产环境中的数据库,我们也可以通过查询相关数据字典得到索引的质量的高低,通过这个分析来指导如何改善索引的性能.下面给出了演示以及索引创建的基本指导原则,最后给出了索引