1) 没有查询条件,或者查询条件没有建立索引

2) 在查询条件上没有使用引导列

3) 查询的数量是大表的大部分,应该是30%以上。

4) 索引本身失效

5) 查询条件使用函数在索引列上,或者对索引列进行运算,运算包括(+,-,*,/,! 等)

错误的例子:select * from test where id-1=9; 正确的例子:select * from test where id=10;

6) 对小表查询

7) 提示不使用索引

8) 统计数据不真实

9) CBO计算走索引花费过大的情况。其实也包含了上面的情况,这里指的是表占有的block要比索引小。

10)隐式转换导致索引失效.这一点应当引起重视.也是开发中经常会犯的错误.

由于表的字段tu_mdn定义为varchar2(20),但在查询时把该字段作为number类型以where条件传给数据库,

这样会导致索引失效. 错误的例子:select * from test where tu_mdn=13333333333;

正确的例子:select * from test where tu_mdn=‘13333333333‘;

12) 1,<> 2,单独的>,

13) like "%_" 百分号在前.

14) 没做表分析.

15) 单独引用复合索引里非第一位置的索引列.

16) 字符型字段为数字时在where条件里不添加引号.

17) 对索引列进行运算.需要建立函数索引.

18) not in ,not exist.

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

20) B-tree索引 is null不会走,is not null会走,位图索引 is null,is not null 都会走

21) 联合索引

is not null 只要在建立的索引列(不分先后)都会走,

in null时 必须要和建立索引第一列一起使用,当建立索引第一位置条件是is null 时,

其他建立索引的列可以是is null(但必须在所有列 都满足is null的时候),

或者=一个值; 当建立索引的第一位置是=一个值时,其他索引列可以是任何情况(包括is null =一个值),

以上两种情况索引都会走。其他情况不会走。

---------

1、MyISAM 存储引擎索引键长度总和不能超过1000 字节;

2、BLOB 和TEXT 类型的列只能创建前缀索引;

3、MySQL 目前不支持函数索引;

4、使用不等于(!= 或者<>)的时候MySQL 无法使用索引;

5、过滤字段使用了函数运算后(如abs(column)),MySQL 无法使用索引;

6、Join 语句中Join 条件字段类型不一致的时候MySQL 无法使用索引;

7、使用LIKE 操作的时候如果条件以通配符开始( ‘%abc...‘)MySQL 无法使用索引;

8、使用非等值查询的时候MySQL 无法使用Hash 索引;

9、在我们使用索引的时候,需要注意上面的这些限制,尤其是要注意无法使用索引的情况,因为这很容易让我们因为疏忽而造成极大的性能隐患。

oracle 索引失效原因_汇总

标签:这一   先后   not   计数   lob   开始   sel   ash   pre

本条技术文章来源于互联网,如果无意侵犯您的权益请点击此处反馈版权投诉

本文系统来源:https://www.cnblogs.com/651434092qq/p/11209261.html

oracle 检查索引失效,oracle 索引失效原因_汇总相关推荐

  1. 索引忽然失效Oracle,Oracle索引失效原因及解决方法

    一.Oracle索引失效的原因 1使用否定关键字 !=, <> ,not in,not exist select * fromdrama where id <> 1,Mysql ...

  2. oracle or索引失效_ORACLE索引失效的问题分析

    一.问题发现 2月16日现场同事发现某个tablespace空间快要耗尽,让我们手工清楚些数据,腾出足够空间,等用户有预算添加磁盘.该问题年前已经处理过一次,我们已经将数据保留期限做了缩减,按道理不会 ...

  3. Oracle 10g在线整理碎片索引是否失效

    从Oracle 10g开始,Oracle推出了表格在线整理碎片的功能(An ALTER TABLE ... SHRINK ),极大的提高了系统可用性. 那么表格碎片整理之后,索引是否会失效呢?实验结果 ...

  4. 分析Oracle有时会用索引来查找数据的原因-oracle执行计划

    http://www.webjx.com/database/oracle-140.html 问:为什么Oracle有时会用索引来查找数据? 答:在你运用SQL语言,向数据库发布一条查询语句时,Orac ...

  5. oracle索引逻辑损坏,ORACLE如何检查找出损坏索引(Corrupt Indexes) | 码农网

    在 Oracle 数据库中如何找出损坏索引呢? 下面我们人为构造一个案例,将索引块损坏.如下案例所示: SQL> create tablespace test_data 2  datafile  ...

  6. oracle查看表和索引碎片,Oracle 表空间索引存储与碎片检查

    Oracle 表空间索引存储与碎片检查 Oracle 表空间索引存储检查,Oracle 表空间索引碎片查看,包括查看系统表中的用户索引.索引的存储情况检查.索引的选择性.确定索引的实际碎片. 1.查看 ...

  7. mysql locate不走索引_索引失效的情况及原因定位

    同事遇到一个奇葩的问题,一个表里某个字段建了索引,但是有的值走索引,有的值不走索引.因为一般情况一个字段要么完全不走索引,要么走索引,怎么会有的值走索引,有的不走索引. select 条件非常简单,因 ...

  8. mysql in or索引失效_in 索引失效的问题

    简单的in查询 索引失效: 步骤 1.检查建立索引没有 order_status 字段为普通索引的tinyint类型 2.检查是否使用了使索引失效的语句 3.explain查看执行计划 而 in(1) ...

  9. oracle 建分区索引_Oracle分区索引

    索引与表类似,也可以分区: 分区索引分为两类: Locally partitioned index(局部分区索引) Globally partitioned index(全局分区索引) 下面就来详细解 ...

最新文章

  1. 预训练后性能反而变差,自训练要取代预训练了吗?
  2. pdo mysql bindparam_pdo连接mysql prepare,bindParam插入数据
  3. jsoncpp判断Value中是否含有指定的key
  4. 史上最全 BAT 大厂面试题整理
  5. android aop静态方法,spring aop 不能对静态方法进行增强解决
  6. Linux通过文件大小查找,linux 根据文件大小查找文件
  7. future promise shared_future简单使用
  8. python切片操作 当所有数据都省略时_python疑难问题---13、Python切片操作
  9. javascript ~~canvas url blob转换
  10. python语言程序设计实践教程答案实验五_Python程序设计实验五
  11. 8 随机积分与随机微分方程
  12. 联机侠控制台JAVA_联机侠控制台常见问题 | 我的世界 | MC世界侠
  13. 德保罗大学计算机科学专业,德保罗大学专业
  14. David Lowe 的sift代码
  15. 巴比特 | 元宇宙每日必读:42.46%的人年薪超过20万,元宇宙人才没有想象中的金贵?...
  16. Apache Pulsar 生态项目 KoP 新增 Maintainer:吴展鹏
  17. 企业完成云转型的成功之道:云成本优化管理
  18. 解决tomcat 静态页面(html)中文乱码终极篇
  19. 如何提交一份高质量的缺陷报告
  20. 迅雷与迅雷看看播放器使用体验(三)

热门文章

  1. oracle aud$ 清理,Oracle如何迁移、管理、清除Audit数据(AUD$和FGA_LOG$表)
  2. 如何做APP界面设计
  3. 华为软件定义汽车产业全景
  4. 这 7 个稀奇古怪的小网站,让我摸了一天的鱼!太上瘾啦!
  5. 瓜子二手车大安全计划对行业的价值
  6. bboosgroups论坛访问地址:http://www.xtzy.com:800
  7. 回收站删除的文件恢复,保姆级教学
  8. 关于内外网隔离的网络访问解决方案
  9. Ardusub源码解析学习(三)——车辆类型
  10. 今晚开播|两把吃鸡的时间,撸一个自动驾驶系统