我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle中is null和is not null如何优化

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

Oracle中is null和is not null如何优化

这篇文章给大家分享的是有关Oracle中is null和is not null如何优化的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

最近工作的时候遇到了比较大的数据查询,自己的sql在数据量小的时候没问题,在数据量达到300W的时候特别慢,只有自己优化sql了,以前没有优化过,所以记录下来自己的优化过程,本次是关于is  null和is not null的优化。所用环境0racle11g。

现有a表,a表中有字段b,我想查出a表中的b字段is null的数据。

select * from a where b is null

我在b字段上建立的索引,但是当条件是is null 和is not  null时,执行计划并不会走索引而是全表扫描。此时a表中的数据有310w条记录,执行这段查询花费时间约为0.526秒

优化:

通过函数索引:通过nvl(b,c)将为空的字段转为不为空的c值,这里要确保数据中是不会出现c值的。再在函数nvl(b,c)上建立函数索引

select * from a where nvl(b,c)=c

此时花费时间约为 0.01秒。

当条件为is not null 时同理可以用 nvl(b,c)<>c来代替

Oracle查询优化之子查询条件优化

环境:oracle 11g

现有a表与b表通过a01字段关联,要查询出a表的数据在b表没有数据的数据;sql如下

select count(1) from (select a.*,(select count(1) from b where b.a01=a.a01) as flag from a) where flag=0

因为flag是虚拟字段没有走不了索引导致这条sql执行起来特别慢 310W条数据查总数花费2秒左右。

利用not exists优化sql如下

select count(1) from a where not exists(select 1 from b where a.a01=b.b01)

利用not exists走索引,执行花费时间大约为0.2秒

感谢各位的阅读!关于“Oracle中is null和is not null如何优化”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle中is null和is not null如何优化

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

oracle中不等于null和 is not null区别

not null 是列约束,禁止 null 值插入;is not null 是检查操作符,评估列是否不包含 null 值。Oracle 中 NOT NULL 和 IS NOT NULL 的区别NOT NULL 和 IS NOT NULL
oracle中不等于null和 is not null区别
2024-05-08

如何在Oracle中进行数据库优化和调整

在Oracle中进行数据库优化和调整可以通过以下方法:使用SQL语句调整:优化查询语句,尽量避免全表扫描和使用索引等方式来提高查询效率。调整数据库参数:根据数据库的实际情况,调整Oracle数据库的参数设置,如SGA和PGA的大小、缓冲区大
如何在Oracle中进行数据库优化和调整
2024-04-09

编程热搜

目录