`
seya
  • 浏览: 359926 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Oracle中的限制索引

阅读更多

我们知道使用索引会大大提高查询速率,但是在有些情况会导致索引失效,值得注意的有这些情况:

测试用表test(a varchar2, b varchar2, c varchar2)

create index IND on test(a);

1)使用 <> 或者!=

比如select * from test where a <> 'seya'.

通过分析Explain table可以知道,并没用用上在a 上的索引。改成select * from test where a< 'seya' or a>'seya'就用上了索引。

 

2)使用 IS NULL 或者 IS NOT NULL

select * from test where a is null;

 

3)在索引列上使用了函数

select * from test where low(a) = 'seya';

这种情况下,如果可以建立函数索引来提高效率。create index IND_0 on test(low(a));

 

4)类型转化

select * from test where a = 123;

oracle会先把varchar型的a 转化为number型,select * from test where to_number(a) = 123;

这样是使用了函数,与第三种情况一样了,不能用上索引。

 

分享到:
评论

相关推荐

    oracle索引被限制的一些情况

    使用 IS NULL 或 IS NOT NULL 也会限制索引的使用。因为 NULL 值并没有被定义。在 SQL 语句中使用 NULL 会有很多的麻烦。因此,建议开发人员在建表时,把需要索引的列设成 NOT NULL。如果被索引的列在某些行中存在 ...

    09 oracle的索引 PPT

    1. 空值处理:Oracle中的空值在索引中处理特殊,可能影响索引的使用。 2. 数据分布:索引性能受数据分布影响,均匀分布的数据通常比高度倾斜的数据更适合索引。 总结,Oracle的索引是提升数据库性能的关键工具,...

    oracle创建表创建唯一索引

    这里的`NUMBER`、`VARCHAR2`和`DATE`是Oracle中的数据类型,分别用于存储数字、字符串和日期。`NOT NULL`约束确保该字段不能为空,`CHECK`约束则限制了年龄和性别的取值范围。 接着,"创建唯一索引"是为了确保表中...

    Oracle索引优化相关

    ROWID在Oracle中是一种特殊的数据类型,可以通过它来快速访问特定的行。在需要检查重复值或其他与ROWID有关的操作时,可以在任何表中创建和使用ROWID列。 #### 四、限制索引 在实际应用中,一些开发人员可能会因为...

    oracle 视图、索引(自用)

    5. 唯一索引:确保索引列中的每个值都是唯一的,有助于保证数据的唯一性。 6. 复合索引:包含多个列的索引,适用于多个列组合的查询。 7. 分区索引:将大表分成较小的、更易管理的部分,每个部分都有自己的索引,...

    Oracle索引优化

    ROWID是Oracle中每个行的唯一标识,它提供了直接访问单行数据的能力。通过ROWID,可以快速定位到数据行,这对于数据检索非常有用。然而,过度依赖ROWID可能导致性能问题,因为它跳过了索引,直接访问数据块。 在...

    Oracle优化全攻略一【Oracle 索引概念】.docx

    本篇文章将深入探讨Oracle中的索引类型及其优化策略。 首先,索引是提升数据库查询速度的关键工具。在Oracle数据库中,常见的索引类型包括B*Tree索引、反向索引、降序索引、位图索引、函数索引以及interMedia全文...

    ORACLE分区与索引

    Oracle 分区与索引是数据库管理系统中用于优化大数据查询的关键技术。Oracle 分区是一种将大表和索引分成可管理的小部分,以提高查询效率、维护性和可用性。这种技术适用于处理海量数据,通过将数据分散到不同的存储...

    oracle索引类型及扫描方式大整理new

    例如,在进行范围查询(`WHERE column &gt; value`)时,由于反向索引的叶块中键值并未按顺序排列,因此无法通过简单的区域扫描完成检索,这限制了其在某些查询类型中的应用。 #### 三、降序索引:针对逆向排序查询的...

    Oracle 索引 详解

    在本文中,我们将详细介绍 Oracle 索引的创建、特点、不足、创建索引列的特点、不应该建索引列的特点、限制索引等方面的知识点。 一、索引介绍 索引是 Oracle 数据库中的一种数据结构,它可以加快数据的检索速度,...

    Oracle 数据库的位图索引原理与应用.pdf

    Oracle 数据库中的位图索引是一种特殊类型的索引,主要用于解决查询优化问题。 在实际应用中,列值重复率高的情况非常常见,使用 B 树索引效果不佳。在这种情况下,位图索引就成了不二之选。位图索引可以快速定位...

    Oracle DBA实战索引优化

    - **限制索引使用的情况**:某些情况下,即使有索引,Oracle也可能选择不使用。比如使用不等于运算符(`&lt;&gt;`或`!=`)时,索引通常不会被利用。这是因为这种查询通常返回的结果集较大,全表扫描可能更快。 #### 五、...

    高效ORACLE之索引(完整).pdf

    选择性索引:选择性索引是指那些能够过滤大量无关记录的索引,它们通过限制搜索范围来提高查询效率。一个好的选择性索引应该能够有效地区分不同的记录,避免全表扫描。 选择惟一性索引:选择惟一性索引是指...

    Oracle数据库--索引讲义.pptx

    管理索引的原则包括:在导入数据后创建索引以避免频繁更新,只在经常检索的字段上创建索引(如果检索数据少于表的15%),并限制索引的数量以减少修改表时的额外开销。示例中通过对比创建索引前后的查询开销,可以...

    oracle数据库 视图和索引

    Oracle数据库中的视图和索引是数据库管理中的关键概念,它们对提高数据查询效率和数据安全性具有重要作用。本文将深入探讨这两个主题。 首先,我们来理解视图的重要性和使用。视图是数据库的一个虚拟表,它并不实际...

    ORACLE四招提高位图索引

    位图索引是Oracle数据库中的一种特殊索引类型,它在特定场景下能显著提高查询效率,尤其是在处理基数较小(即列中不重复值数量)的列时。本文将探讨如何通过四个策略来优化位图索引的使用。 首先,我们需要理解何时...

    关于oracle的表空间,分区表,以及索引的总结

    #### 索引(Index)在Oracle中的应用与维护 索引是加速数据检索的数据库结构,通过建立数据项的快速查找路径,可以显著提升查询效率。 - **索引类型**:包括B树索引、位图索引、倒排索引等。其中,B树索引是最常用...

    最全的Oracle中文使用手册

    这只是一个起点,Oracle的深度和广度远不止于此,包括索引、视图、触发器、存储过程、性能优化等方面都有大量知识等待探索。对于开发者和DBA来说,掌握Oracle的使用是提升工作效率和解决问题的关键。

    ORACLE中临时表

    Oracle中的临时表是一种特殊的数据结构,用于存储会话或事务期间的数据,这些数据仅对当前会话可见,并在特定条件下自动清除。Oracle提供两种类型的临时表:事务型和会话型。 事务型临时表在事务开始时创建,插入的...

Global site tag (gtag.js) - Google Analytics