ORACLE-017:SQL优化-is not null和nvl
今天在优化一段sql,原脚本大致例如以下:
select a.字段n from tab_a a where a.字段2 is not null;
a.字段2添加了索引的,可是查询速度很慢。
于是做了例如以下改动:
select a.字段n from tab_a a where nvl(a.字段2,'0' ) != '0';
速度提升非常明显。
原因是什么呢?事实上非常easy,由于is null和is not null使字段的索引失效了。
尽管都知道哪些情形下会使索引失效,可是有时难免受业务需求的影响而考虑的不够全面,所以sql优化要时刻进行。随时进行。努力提高sql的运行效率。
【推荐】博客园的心动:当一群程序员决定开源共建一个真诚相亲平台
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】Flutter适配HarmonyOS 5知识地图,实战解析+高频避坑指南
【推荐】开源 Linux 服务器运维管理面板 1Panel V2 版本正式发布
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步