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的运行效率。
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步