当前位置:网站首页>sql is not null 优化(oracle语句索引优化)
sql is not null 优化(oracle语句索引优化)
2022-08-01 12:46:00 【全栈程序员站长】
大家好,又见面了,我是你们的朋友全栈君。
IS NULL的优化
优化方法: 通过nvl(字段i,j),将字段i中为空的数据转化为j,从而正常使用索引. 具体则是将条件 i is null 转化为 j = nvl(i,j); 数据量较大时转化is null 在所用oracle版本提升明显, 注意:使用时必须确保字段i的数据不包含j! 缺陷:字段i不能有值为j的数据 另外一种方式是将null包含到索引中
函数介绍: nvl(a,b,c,…) 当a为空时取b,当b为空取c,以此类推.
优化示例
--使用nvl函数的方式(不用添加索引,推荐)
select*from tab_i t where 1=nvl(t.col_x,1);
--当t.col_x不存在等于1的数据时等价于
--select*from tab_i t where t.col_x is null;
--添加索引的方式
create index idx_col_x on tab_i(decode(col_x,null,1));
select*from tab_i t where decode(t.col_x,null,1)=1;IS NOT NULL的优化
优化方法 结果集不包含 j = nvl(i,j)即可,方式多样. 通常情况下可以使用not exists或者比较大小, 这两种效率一般高于比较长度
优化示例
- not exists
select*from tab_i t where not exists
(select 1 form tab_i i where 1=nvl(i.col_x,1));
--11g版本后not in和not exists趋于相似,也可以用not in
--当t.col_x不存在等于1的数据时等价于
--select*from tab_i t where t.col_x is not null;- 比较大小
--当t.col_x为总是大于1的数值时
select*from tab_i t where 1<nvl(t.col_x,1);
--当t.col_x为总是小于1的数值时
select*from tab_i t where 1>nvl(t.col_x,1);
--直接比较大小,暗含了 IS NOT NULL
select*from tab_i t where t.col_x>1;- 比较长度
--当t.col_x的长度总是大于1时
select*from tab_i t where 2<=length(nvl(t.col_x,1));
--因为length函数的参数为空时,其结果为空,因而不能直接使用length函数发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/126517.html原文链接:https://javaforall.cn
边栏推荐
- R language ggplot2 visualization: use ggpubr package ggscatter function visualization scatterplot, use xscale wasn't entirely specified X axis measurement adjustment function, set the X coordinate for
- 安全又省钱,“15岁”老小区用上管道燃气
- LeetCode_位运算_简单_405.数字转换为十六进制数
- R language ggplot2 visualization: use the ggdensity function of the ggpubr package to visualize density plots, use the stat_central_tendency function to add mean vertical lines to the density and cust
- 多线程案例——阻塞式队列
- 重磅消息 | Authing 实现与西门子低代码平台的集成
- SQL functions STR
- How does the SAP ABAP OData service support the Create operation trial version
- Apex installation error
- Software designer test center summary (interior designer personal summary)
猜你喜欢

嵌入式开发:创建和使用可移植类型的7个技巧

8. How does the SAP ABAP OData service support the Create operation

win10系统重装,无法登录进行同步的情况下chrome数据恢复

重磅消息 | Authing 实现与西门子低代码平台的集成

快速幂---学习笔记

VINS-mono 论文解读:IMU预积分+Marg边缘化

HMS Core音频编辑服务音源分离与空间音频渲染,助力快速进入3D音频的世界

What is consistent hashing?In what scenarios can it be applied?

How do we do full-link grayscale on the database?

leetcode:1201. 丑数 III【二分 + 数学 + 容斥原理】
随机推荐
Aeraki Mesh became CNCF sandbox project
大中型网站列表页翻页过多怎么优化?
意大利普拉托华社将游行示威 盼解决安全问题
Aeraki Mesh Joins CNCF Cloud Native Panorama
【讲座分享】“营收“看金融
kubernetes之DaemonSet以及滚动更新
PanGu-Coder:函数级的代码生成模型
STM32 CAN过滤器配置详解
Fault 007: The dexp derivative is inexplicably interrupted
Visualization of lag correlation of two time series data in R language: use the ccf function of the forecast package to draw the cross-correlation function, and analyze the lag correlation according t
软件设计师考点汇总(室内设计师个人总结)
leetcode: 1201. Ugly Number III [Dichotomy + Mathematics + Inclusion and Exclusion Principle]
CloudCompare&PCL ICP配准(点到面)
多线程案例——阻塞式队列
VINS-mono 论文解读:IMU预积分+Marg边缘化
iframe标签属性说明 详解[通俗易懂]
SAP ABAP OData 服务如何支持创建(Create)操作试读版
8. SAP ABAP OData 服务如何支持创建(Create)操作
找出相同属性值的对象 累加数量 汇总
Meshlab&Open3D SOR滤波