由于B*Tree索引不存储Null值,所以在索引字段允许为空的情况下,某些Oracle查询不会使用索引.

很多时候,我们看似可以使用全索引扫描(Full Index Scan)的情况,可能Oracle就会因为Null值的存在而放弃索引.

在此情况下即使使用Hints,Oracle也不会使用索引,其根本原因就是因为Null值的存在.

我们看以下测试.

在username字段为Not Null时,Index Hints可以生效.

当索引字段允许为Null时,Oracle放弃此索引:

当该字段为Not Null时,索引可以被强制使用:

这就是Null值对于索引及查询的影响.

oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

转载于:https://blog.51cto.com/19880614/1251148

Oracle技术之索引与Null值对于Hints及执行计划的影响相关推荐

  1. MySQL索引对NULL值的处理

    # 索引不会包含有NULL值的列 只要列中包含有NULL值都将不会被包含在索引中,复合索引中只要有一列含有NULL值,那么这一列对于此复合索引就是无效的.所以我们在数据库设计时不要让字段的默认值为NU ...

  2. oracle排名怎么去除空值影响,Oracle排序中常用的NULL值处理方法

    1.缺省处理 Oracle在Order by 时缺省认为null是最大值,所以如果是ASC升序则排在最后,DESC降序则排在最前 2.使用nvl函数 nvl函数可以将输入参数为空时转换为一特定值,如 ...

  3. oracle绑定变量执行计划,绑定变量对执行计划的影响

    发现无论启动或者关闭绑定变量窥探使用绑定变量的SQL都有可能选择错误的执行计划,当第一次硬解析产生执行计划时,之后的绑定变量SQL就会继续这个执行计划执行,有时可能是错的.如何改进呢? 1.当关闭绑定 ...

  4. oracle正确使用索引,通过案例学调优之--Oracle中null使用索引

    通过案例学调优之--Oracle中null使用索引 默认情况下,Oracle数据库,null在Index上是不被存储的,当在索引列以"is null"的方式访问时,无法使用索引:本 ...

  5. NULL 值与索引(一)

    NULL值是关系数据库系统布尔型(true,false,unknown)中比较特殊类型的一种值,通常称为UNKNOWN或空值,即是未知的,不确定的.由于 NULL存在着无数的可能,因此NULL值也不等 ...

  6. Mysql数据唯一约束与唯一索引案例总结及踩坑记(含NULL值与唯一约束唯一索引的搭配使用)

    Mysql数据唯一索引与唯一约束案例总结 唯一约束的说明 唯一约束是约束(CONSTRAINT)里的一种,常见的还有主键.外检.默认值.是否为空.检查等.唯一约束即限制某个或某些字段具有唯一性(不能重 ...

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

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

  8. Oracle AWR 阙值影响历史执行计划

    最近有网友提到为什么在dba_hist_sql_plan中无法查看到sql语句的历史执行计划,对于这个问题是由于缺省情况下,Oracle 设定的阙值并非捕获所有的sql语句,所以无法看到某些sql历史 ...

  9. Oracle 反向键索引的原理和用途(减少索引热点块)

    Oracle 反向键索引的原理和用途(减少索引热点块) 我们知道Oracle会自动为表的主键列建立索引,这个默认的索引是普通的B-Tree索引.对于主键值是按顺序(递增或递减)加入的情况,默认的B-T ...

最新文章

  1. 面试官比较看重简历中的哪些维度,有什么写简历的技巧、建议和总结?
  2. 023_JavaScript数字方法
  3. optee的Share Memory介绍
  4. linux pti性能影响,Linux修正内核:Intel打补丁性能狂降、AMD不受影响
  5. 简单的实现图片预览, 通过原生ajax以及 jQuery两种方法实现图片预览,有更好的办法可以留言喔...................
  6. 开发人员转售前工程师_工程师和营销人员可以从中学到什么
  7. java subset_Java TreeSet subSet()方法
  8. python微控制器编程从零开始 豆瓣_从零开始(什么是编程)认识python
  9. android 系统(155)---如何自己添加号码归属地数据库?
  10. NKOJ2317 英语四六级考试
  11. HTML元信息设置方法
  12. iframe中src参数过长问题解决
  13. 3V升压5V芯片,3V升压5V的电路图
  14. win10微信卡顿_终于找到Win10卡顿病根了!看完秒懂
  15. CAD注册表:Release Number、Product ID、Locale ID
  16. Android之Material Dialogs详解(非原创)
  17. asp.net mvc 实现判断用户是否登录的两种方式
  18. 软件人才从这里飞翔——访北京大学软件学院院长陈钟博士
  19. javascript字符串方法indexOf、lastIndexOf 方法的使用
  20. AS3字符串正则表达式

热门文章

  1. 7-290 鸡兔同笼 (10 分)
  2. 4025-数组的正负排序(C++,双指针法,附思路)
  3. android 进度条图标方形_Android - 条纹进度条实现,调整view宽度仿进度条
  4. oracle pl sql developer 教程,plsql developer怎么使用 plsql developer图文使用教程
  5. (Ruby)Ruby中区块用的一些潜藏关键字
  6. luogu P1578 奶牛浴场
  7. Linux下使用wget下载FTP服务器文件
  8. 20170808上课笔记
  9. iPad开发(Universal Applications)
  10. Keil uVision4 for ARM 下增加支持C51,C5x