oracle避免在索引列上使用IS NULL和IS NOT NULL

摘要:
由于索引列中不存在空值,WHERE子句中索引列的空值比较将导致ORACLE停用索引。示例:效率低下:SELECT

避免在索引中使用任何可以为空的列,ORACLE将无法使用该索引 .对于单列索引,如果列包含空值,索引中将不存在此记录. 对于复合索引,如果每个列都为空,索引中同样不存在此记录. 如果至少有一个列不为空,则记录存在于索引中.

举例:

  如果唯一性索引建立在表的A列和B列上, 并且表中存在一条记录的A,B值为(123,null) , ORACLE将不接受下一条具有相同A,B值(123,null)的记录(插入). 然而如果

所有的索引列都为空,ORACLE将认为整个键值为空而空不等于空. 因此你可以插入1000

条具有相同键值的记录,当然它们都是空!

      因为空值不存在于索引列中,所以WHERE子句中对索引列进行空值比较将使ORACLE停用该索引.

举例:

低效: (索引失效)

SELECT …

FROM DEPARTMENT

WHERE DEPT_CODE IS NOT NULL;

高效: (索引有效)

SELECT …

FROM DEPARTMENT

WHERE DEPT_CODE >=0;

免责声明:文章转载自《oracle避免在索引列上使用IS NULL和IS NOT NULL》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇vue项目中引入 html2canvas ,控制台报错 Cannot assign to read only property 'className' of object '#< SVGSVGElement >'matlab更改legend中marker的大小下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux命令行下批量重命名文件名为数字索引编号(0~N.xxx)的方法

在处理一些数据集的时候,我们经常会碰到数据集的文件名是按时间戳(time stamp),或者其他方式命名的文件,如: 12345679.jpg, sunshine.txt 而我们在编写程序时,往往希望读入的这些数据集的文件名是一种更简洁的形式,比如按照索引(index)方式:1.png,2.png,3.png...,那么如何批量重命名一个文件夹下的文件名呢...

简单演示 Oracle 数据库并发导致段级锁(表级锁)

本文内容 软件环境 简单演示 Oracle 数据库并发导致段级锁(表级锁) 本文简单演示并发导致的行级锁。并发是两个以上的用户对同样的数据进行修改(包括插入、删除和修改)。锁的产生是因为并发。没有并发,就没有锁。并发的产生是因为系统需要,系统需要是因为用户需要。 软件环境 Windows 2003 Server Oracle 11g Rele...

Oracle行转列的3种方法

测试表为A3 , 有5个字段:ID1, ID2, ID3, ID4, ID5 测试数据如下: ID1 ID2 ID3 ID4 ID5 1 2 3 4 5 11 22 33 44 55 111 222 333 444 555 结果如下: ID1 11 ID2 22 ID3 33 方法1:使用系统表 SELECT DECOD...

MySQL索引详解——full-text,b-tree,hash,r-tree

一、MySQL索引类型 mysql里目前只支持4种索引分别是:full-text,b-tree,hash,r-tree b-tree索引应该是mysql里最广泛的索引的了,除了archive基本所有的存储引擎都支持它. 1. full-text索引 full-text在mysql里仅有myisam支持它,而且支持full-text的字段只有char、var...

oracle创建用户、授予权限及删除用户

创建用户 oracle对表空间 USERS 无权限 alter user 用户名 quota unlimited on users; //创建临时表空间 create temporary tablespace test_temp tempfile 'E:/oracle/product/10.2.0/oradata/testserver/test_tem...

sql 简单查询修改

1.group by order by select siteid count(*)as 1 from webdb where gathtrime between '2017-06-14 00:00:00' and '2017-06-14 23:59:59'group by siteid order by 1desc 2 inlimit sel...