首页 > 数据库 >SQL优化| IS NOT NULL 优化与 NOT NULL 查询慢优化

SQL优化| IS NOT NULL 优化与 NOT NULL 查询慢优化

时间:2024-12-31 17:52:11浏览次数:5  
标签:函数 查询 索引 comm SQL NULL 优化 表达式

在SQL查询时,SQL语句中由于使用了 IS NOT NULL ,导致查询时间过长,数据表有180W条数据,查询的字段上已经有普通索引,我们使用简单的sql查询这个cfErpPayNumber 不是空的记录,耗时需要1843ms,这是非常头疼的,

 

 查看执行计划,是全表扫描

这里为了加快查询效率,我们需要加入函数索引,  

函数索引是Oracle数据库中的一种特殊类型的索引,它允许基于表达式或函数的结果创建索引。与传统的基于列的索引不同,函数索引可以包含对列执行的操作结果,例如大写转换、数学计算或其他复杂的表达式。
主要特点:
1、提高查询性能:通过在查询中使用函数索引,可以显著提高涉及复杂表达式的查询性能。
2、支持复杂表达式:可以在索引中包含对列的函数调用或表达式,而不仅仅是列本身。
3、透明性:对于应用程序来说,函数索引的存在是透明的,即不需要修改查询语句来利用这些索

这里我们加入一个函数索引后再去查询,仅仅耗时 34 ms,相比原来的1800ms提升相当大,

查看执行计划,可以看到走的是我们刚才创建的函数索引

 

NVL2(表达式1,表达式2,表达式3)
如果表达式1为空,返回值为表达式3的值。如果表达式1不为空,返回值为表达式2的值。
例如 NVL2(comm,'sal+comm',sal)
NVL2函数测试comm
如果comm为空,就返回sal 的值。如果 comm 不为空(null),就返回表达式 sal+comm的值。

如果我们希望用普通的字段查,也可以继续加普通的索引

 


 

标签:函数,查询,索引,comm,SQL,NULL,优化,表达式
From: https://www.cnblogs.com/ketoli/p/18644561

相关文章

  • 不再担心安装问题!手把手教你在 CentOS 上安装 MySQL 8
    目录......
  • 掌握 PostgreSQL 的 psql 命令行工具
    title:掌握PostgreSQL的psql命令行工具date:2024/12/30updated:2024/12/30author:cmdragonexcerpt:psql是PostgreSQL关系数据库管理系统的交互式命令行工具,是数据库管理员和开发人员进行数据库管理和操作的主要接口。熟练使用psql工具,不仅能够提高对P......
  • PostgreSQL小技巧
    在字符串中添加换行符在PostgreSQL中如果想在字符串中添加特殊符号,是不等直接在字符串中显示的,如:select'\n',最后查出来的就是\n而不是换行符。这是需要借用E。在PostgreSQL中,字符串前面的E表示该字符串是一个转义字符串(escapestring)。转义字符串可以包含用于表示特殊字符或......
  • 打包优化
    直接上代码import{defineConfig}from'vite'importvuefrom'@vitejs/plugin-vue'importviteCompressionfrom'vite-plugin-compression';import{visualizer}from'rollup-plugin-visualizer';importpathfrom'pat......
  • Python+Django智慧农业小程序(Pycharm Flask Django Vue mysql)
    收藏关注不迷路,防止下次找不到!文章末尾有惊喜项目介绍当今社会已经步入了科学技术进步和经济社会快速发展的新时期,国际信息和学术交流也不断加强,计算机技术对经济社会发展和人民生活改善的影响也日益突出,人类的生存和思考方式也产生了变化。传统智慧农业采取了人工的管......
  • jemeter参数优化
    1.修改JSON请求编码:加请求头Content-Type:application/json;charset=UTF-8。2.修改返回结果编码: 打开jemeter的bin目录下jemeter.properties文件,将下面这行注释放开并将值改为UTF-8sampleresult.default.encoding=UTF-83.修改jemeter内存参数:打开jemeter的bin目录下jemete......
  • 解决Spring boot集成quartz时service注入失败为null的问题
    解决Springboot集成quartz时service注入失败为null的问题一、报错信息二、代码任务类源代码配置类原代码三、注入失败原因四、解决的思路11、任务类修改2、配置类修改五、解决的思路2一、报错信息java.lang.NullPointerException:nullatfarbun.server.schedul......
  • Frontline Analytic Solver分析求解器产品——基于Excel的数据分析和运筹优化
      FrontlineAnalyticSolver是一款求解性能优秀的基于MicrosoftExcel用户界面的数学分析、优化求解和模拟工具,主打产品有两种类型:分别是AnalyticSolverforExcel和AnalyticSolverforCloud。AnalyticSolver平台是针对任何规模问题的高级分析,预测,数据挖掘,模......
  • SQL实现报表功能
    查询查询按钮点击事件脚本//查询功能:SubOnClick(ByValItem)Dimconn'定义类对象DimSCon'定义数据库连接字符串DimoRs1'定义获取到的数据集DimoComDimstrSQL1Dimm,i,j,k'---------------------......
  • ruoyi项目优化为本地项目
    一、修改配置文件在ruoyi-admin/src/main/resources目录1、修改数据库连接2、修改redis连接3、修改项目端口及根路径4、修改日志存放路径。二、改造项目为mybatisplus1、在ruoyi-common/pom.xml里添加mybatisplus依赖<!--mybatisPlus--><dependency><groupId>com......