1. 没有 WHERE 子句

2. 使用 IS NULL 和 IS NOT NULL

SELECT ... FROM emp WHERE comm IS NULL; comm 列的索引会失效

3. WHERE 子句中使用函数

如果没有使用基于函数的索引,那么 where 子句中对存在索引的列使用函数时,会使优化器忽略掉这些索引。例如:

select * from staff where trunc(birthdate) = '01-MAY-82';

但是把函数应用在条件上,索引是可以生效的,把上面的语句改成下面的语句,就可以通过索引进行查找。

select * from staff where birthdate < (to_date('01-MAY-82') + 0.9999);

注意:对于 MIN, MAX 函数,Oracle 仍然使用索引。

4. 使用 LIKE ‘%T’ 进行模糊查询

5. WHERE 子句中使用不等于操作

不等于操作包括:<>, !=, NOT colum >= ?, NOT colum <= ?

对于这个限制条件可以通过 OR 替代,例如: colum <> 0 ===> colum>0 OR colum<0

6. 等于和范围索引不会被合并使用

SELECT emp_id, emp_m, salary_q ... FROM emp WHERE job='manager' AND deptno>10

job 和 deptno 都是非唯一索引,这种条件下 oracle 不会合并索引,它只会使用第一个索引。

7. 比较不匹配数据类型

dept_id是一个varchar2型的字段,在这个字段上有索引,但是下面的语句会执行全表扫描。

select * from dept where dept_id = 900198;

这是因为 oracle 会自动把 where 子句转换成 to_number(dept_id)=900198,相当于使用函数,这样就限制了索引的使用。正确写法如下:

select * from dept where dept_id = '900198';

oracle备份能备份索引吗,ORACLE会使索引失效的条件相关推荐

  1. oracle中where中使用函数,Oracle 尽量避免在 SQL语句的WHERE子句中使用函数

    -- Start 在 WHERE 子句中应该尽量避免在列上使用函数,因为这样做会使该列上的索引失效,影响SQL 语句的性能.即使该列上没有索引,也应该避免在列上使用函数.考虑下面的情况: CREATE ...

  2. Oracle调优之看懂Oracle执行计划

    1.文章写作前言简介 之前曾经拜读过<收获,不止sql调优>一书,此书是国内DBA写的一本很不错的调优类型的书,是一些很不错的调优经验的分享.虽然读了一遍,做了下读书笔记,觉得很有所收获, ...

  3. 三、索引优化(5)索引设计指南

    通过前面的几篇文章,我们初步了解了索引的一些特征,这将有助于设计出最佳的索引. 一.从数据库的角度进行设计 1. 索引的宽度 索引宽度,即索引的键占用了多少个字节.影响索引宽度有2个因素:一是引用的列 ...

  4. Oracle简单的备份和恢复-导出和导入(1)

    ylbtech-Oracle:Oracle简单的备份和恢复-导出和导入(1) Oracle简单的备份和恢复-导出和导入 1. 用户导出自己的表(emp,dept)返回顶部 1.1, 我们启动Oracl ...

  5. Oracle数据库的备份

    这两天要用oracle的数据备份,在网上找了找例子.给大家贴出来看看. PS: 选择数据库中所有的表的SQL语句 SELECT * FROM DBA_TABLES WHERE OWNER=''(填用户 ...

  6. Oracle备份及备份策略

    第二章. 了解备份的重要性 第三章. 了解ORACLE的运行方式 第四章. ORACLE备份的分类 第五章. 定制恰当的备份策略 第六章. 常见误区 第七章. 常见问题 第八章. 小结 回到顶部 第二 ...

  7. oracle数据库 export,转:Oracle数据库的备份方法——使用export作为备份

    5.使用export作为备份策略 5.1 export的命令选项说明 Oracle数据库的exp工具提供tables.users.full database.tablespace四种级别的导出方式,把 ...

  8. oracle没什么没有备份,怎么恢复没有备份的Oracle数据库

    数据文件丢失,没有备份,拥有文件创建以来的全部归档,使用RMAN恢复,报错RMAN-06102: no channel to restore a backup or copy of log threa ...

  9. oracle rman实时备份吗,ORACLE-RMAN自动备份和恢复

    以下介绍的是每周1-6增量备份,每周日全量备份. 通过系统启动自动化任务 [oracle@orcl ~]$ crontab -l 10 00 * * 0  /home/scripts/rmanleve ...

  10. linux oraclerman自动备份,Linux平台下的Oracle自动备份案例(使用RMAN)

    有个童鞋问rman的自动备份脚本程序,我之前有写过exp备份指定方案自动备份案例(Linux平台下的Oracle自动备份案例(使用exp工具)  http://www.linuxidc.com/Lin ...

最新文章

  1. CB Insights发布最新AI 100排名,包含100家最有前景的AI初创公司
  2. jquery中not方法失效的解决方案
  3. 苹果营收和股价双双创历史新高!库克:iPhone 11系列卖得很好
  4. 盘点几个开源的高仿项目,B站最像~
  5. Redis的内存淘汰策略问题
  6. Markdown 图标 快捷键
  7. 《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然
  8. java.lang.IncompatibleClassChangeError:
  9. 当罗密欧遇到朱丽叶... ...当指针遇到数组
  10. navision系统和sap区别_上海生产管理EPR系统和SAP系统有什么不同,我们应该选择哪个?...
  11. 方法二 、属性 CLR学习第九课
  12. 分布式ID生成器解决方案
  13. winhex数据恢复linux,winhex数据恢复完整图文教程
  14. WordPress主题 LightSNS v1.6.60 强大的社交系统SNS主题(免受权)
  15. C语言实现求斐波那契数列中的第n项
  16. 宇视网络视频录像机添加摄像机提示离线
  17. 最新PHP小旋风站群系统源码Ver9.02+带安装教程
  18. Java学习笔记:案例:标准体重计算器
  19. Java 服务器版超市管理系统,基于JAVA的超市进销存管理系统.doc
  20. C盘各个文件的简单介绍

热门文章

  1. 建筑与计算机技术,建筑设计中常用的计算机技术与注意点
  2. java @valid 密码不一致_一个成熟的Java项目如何优雅地处理异常
  3. 值从哪里来_Linux used内存到底去哪里了呢?
  4. 梁单元分析matlab,[FEM][有限元][编程][Matlab][Code by myself] 2D Timoshenko梁单元
  5. python 数据库连接池_【转】Python 数据库连接池
  6. ​GB28181心跳机制探讨和技术实现
  7. WeX5 Model 里data ,baasData 数据过滤条件清除 数据初始化
  8. oracle在线中文文档,Oracle TopLink
  9. Java啤酒生产系统描述_Java描述设计模式(03):工厂方法模式
  10. ntko跨浏览器插件_继泄露版后,微软全新 Chrome 内核 Edge 浏览器你都测试过了吗?...