DATEDIFF函数过滤条件改写经验
1、问题之前分享过在列上套用函数会无法使用普通索引影响性能所以对于此类场景优化经常是想办法去掉函数在实际项目上经常遇到一般是对时间条件计算会套用函数今天主要是datediff函数转换思路的分享原始例子如下selectcount(1)from(selectt1.*,DATEDIFF(DAY, TRUNC(t1.ctime), TRUNC(CURRENT_DATE()))AS dayNum fromtestt1,test2 t2 wheret1.idt2.plan_id)t where t.dayNum IN(1,3)计划计划做成hash join被驱动表全表扫描看语句有过滤性较好的条件t.dayNum IN (1, 3)这里是时间计算而来根据普通索引使用原则需要去掉列上的函数即需要把DATEDIFF(DAY, TRUNC(T1.ctime), TRUNC(CURRENT_DATE())) 转换成T1.ctime匹配计算。这里求当前时间-T1.ctime在(1, 3)范围那么相当于当前时间-(1, 3, 7, 15)T1.ctime意味着T1.ctime与当前值比较差值在1天内3天内即((t1.ctimetrunc(CURRENT_DATE)-interval ‘1’ DAY AND t1.ctimetrunc(CURRENT_DATE)-interval ‘3’ DAY AND t1.ctimetrunc(CURRENT_DATE)-interval ‘2’ DAY)然后为了不受or参数影响改写成union 差值1和3没有存在重复值即可用union all2、改写selectcount(1)from(selectt1.*,DATEDIFF(DAY, TRUNC(t1.ctime), TRUNC(CURRENT_DATE()))AS dayNum fromtestt1,test2 t2 wheret1.idt2.plan_id and(t1.ctimetrunc(CURRENT_DATE)-interval1DAY AND t1.ctimetrunc(CURRENT_DATE)-interval0DAY)union allselectt1.*,DATEDIFF(DAY, TRUNC(t1.ctime), TRUNC(CURRENT_DATE()))AS dayNum fromtestt1,test2 t2 wheret1.idt2.plan_id and(t1.ctimetrunc(CURRENT_DATE)-interval3DAY AND t1.ctimetrunc(CURRENT_DATE)-interval2DAY))t计划原始语句1.3s改写完后0.5s这里模拟的数据较少实际上在项目中的原始语句跑1分钟以上改写完秒级执行完。3、小结还是老话如果套用函数的列条件过滤性较好数据量占总数30%以内即要想办法去掉函数。4、测试数据构造create table test(id int primary key,ctime timestamp,c1 varchar2(20));insert intotestselectlevel,SYSDATE-INTERVAL1SECOND * TRUNC(DBMS_RANDOM.VALUE(-100000,1000000)),A||to_char(round(dbms_random.value(1,1000),0))from dual connect by level800000;commit;create table test2(id int primary key,plan_id int,ctime timestamp,c1 varchar2(20));insert into test2selectlevel,round(dbms_random.value(1,100000),0),SYSDATE-INTERVAL1SECOND * TRUNC(DBMS_RANDOM.VALUE(-100000,1000000)),A||to_char(round(dbms_random.value(1,1000),0))from dual connect by level200000;commit;create index IDX_DM_TEST_CTIME on TEST(CTIME);create index IDX_DM_TEST2_PLAN_ID on TEST2(plan_id);dbms_stats.gather_table_stats(USER,TEST,null,100);dbms_stats.gather_table_stats(USER,TEST2,null,100);

相关新闻

SolidWorks_标准零件库18_标准件性能优化

SolidWorks_标准零件库18_标准件性能优化

标准件性能优化:如何用简化显示与轻化模式告别卡顿摘要:在工业设计软件(如SolidWorks、AutoCAD、Creo等)或三维装配体管理系统中,标准件(螺栓、螺母、轴承、垫圈等)往往占据装配体模型数量的70%…

2026/10/13 20:45:28 阅读更多 →
DevOps  SRE 面试真题仓库深度解读:用真实战场替代「Top 50」填充题

DevOps SRE 面试真题仓库深度解读:用真实战场替代「Top 50」填充题

DevOps & SRE 面试真题仓库深度解读:用真实战场替代「Top 50」填充题 核心观点 litu54/DevOps-Interview-Guide 是一个 以真实性为核心竞争力 的开源面试题库——151 份真实候选人的亲历记录、85 家公司、覆盖 2025-2026 年的面试周期。它的定位不是知识清单&…

2026/10/14 8:21:49 阅读更多 →
2026降AI率工具实测红黑榜:10款避坑指南

2026降AI率工具实测红黑榜:10款避坑指南

高校对AI生成内容的检测日趋严格,论文提交前的降AI率已成为刚需。本文从实际测试角度出发,对市面上10款主流降AI率工具做红黑榜评测,帮助读者避开宣传陷阱。 测试方法与评判维度 本次测试选取文科、理工科论文样本各一篇,分别提…

2026/10/11 19:22:21 阅读更多 →

最新新闻

Apollo-11:面向嵌入式场景的轻量级指令解析与执行框架

Apollo-11:面向嵌入式场景的轻量级指令解析与执行框架

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:48:45 阅读更多 →
区间DP从入门到进阶:状态设计、枚举顺序与优化模板

区间DP从入门到进阶:状态设计、枚举顺序与优化模板

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:48:45 阅读更多 →
卓越嵌入式工程师培养计划:从寄存器到RTOS的系统学习路线

卓越嵌入式工程师培养计划:从寄存器到RTOS的系统学习路线

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:48:45 阅读更多 →
华为ensp实战:ACL访问控制列表配置与故障排查指南

华为ensp实战:ACL访问控制列表配置与故障排查指南

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:48:45 阅读更多 →
Flutter for OpenHarmony 组队表单实战:状态管理与适配优化

Flutter for OpenHarmony 组队表单实战:状态管理与适配优化

1. 项目背景与整体设计思路1.1 为什么做这个App,以及为什么选这条路聊到“Flutter for OpenHarmony 剧本杀组队App”,很多人的第一反应是:Flutter 不是做跨平台的吗?跟 OpenHarmony 有什么关系?这里先澄清一个关键认知…

2026/10/15 19:48:45 阅读更多 →
从阿波罗导航系统学嵌入式实时控制与容错设计

从阿波罗导航系统学嵌入式实时控制与容错设计

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 19:47:43 阅读更多 →

日新闻

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

Docker Compose 容器化部署 ChirpStack LoRaWAN 网络服务器实战

1. 为什么选择容器化方式部署 LoRa 网络服务LoRa 物联网项目落地时,网络服务器是整个链路的核心枢纽。它负责接收网关上报的数据包、完成去重与解密、再把有效载荷分发给上层应用。早期大家习惯把网络服务器直接装在物理机上,依赖一堆系统库和特定版本的…

2026/10/15 0:00:46 阅读更多 →
共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

共享LLM服务下的跨模型自动扩缩容:Kubernetes实战与避坑指南

1. 共享推理服务里,扩缩容到底难在哪做过大模型推理服务部署的人,大概都经历过这样的场景:一个团队共用一套推理集群,A 业务跑的是 7B 的小模型,B 业务跑的是 72B 的大模型,C 业务白天流量高、晚上几乎归零…

2026/10/15 0:00:46 阅读更多 →
Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

Systemd 启动阶段根文件系统只读之谜:fstab 与 remount-fs 服务深度解析

1. 引子:一次内核恐慌引发的追查先从一个真实场景说起。某次我给一台老旧的嵌入式设备折腾系统裁减,为了把启动时间压进两秒以内,我手贱地把一串自认为“没用”的 systemd 服务给 disable 了,其中就包括systemd-remount-fs.servic…

2026/10/15 0:00:46 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/15 16:18:54 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/15 19:41:51 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/15 13:48:15 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 0:14:36 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/14 22:45:47 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/15 9:49:14 阅读更多 →