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/8/9 2:38:53 阅读更多 →
DevOps  SRE 面试真题仓库深度解读:用真实战场替代「Top 50」填充题

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

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

2026/8/9 2:37:53 阅读更多 →
2026降AI率工具实测红黑榜:10款避坑指南

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

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

2026/8/9 2:37:53 阅读更多 →

最新新闻

小心数据手册的“乘法陷阱”:SPAD实际探测效率远低于标称的深层原因

小心数据手册的“乘法陷阱”:SPAD实际探测效率远低于标称的深层原因

一、一个令人困惑的数字落差 单光子雪崩二极管(SPAD)的数据手册上,往往同时标注着“量子效率65%”、“填充因子75%”、“死时间15ns”这样一组亮眼参数。工程师按照直觉做乘法:65% 75% ≈ 49%,再考虑后脉冲补偿,理论上探测效率应该能站上35%以上。 但把器件搬进实验室…

2026/8/9 3:33:18 阅读更多 →
SpringBoot智能访客系统:无接触登记与健康码核验实践

SpringBoot智能访客系统:无接触登记与健康码核验实践

1. 项目背景与核心需求疫情常态化管理背景下,企事业单位对访客信息收集提出了更高要求。传统纸质登记方式存在接触风险、信息核实困难、数据统计滞后等问题。这个基于SpringBoot的智能收集系统,正是为了解决以下痛点:无接触登记:通…

2026/8/9 3:33:18 阅读更多 →
如何用Markdown Viewer浏览器扩展优雅预览本地和在线文档

如何用Markdown Viewer浏览器扩展优雅预览本地和在线文档

如何用Markdown Viewer浏览器扩展优雅预览本地和在线文档 【免费下载链接】markdown-viewer Markdown Viewer / Browser Extension 项目地址: https://gitcode.com/gh_mirrors/ma/markdown-viewer 还在为浏览器中打开Markdown文件只能看到单调源代码而烦恼吗&#xff1f…

2026/8/9 3:33:18 阅读更多 →
微信多账号智能管理方案:聚合与路由技术解析

微信多账号智能管理方案:聚合与路由技术解析

1. 项目背景与痛点解析微信作为国内最主流的社交工具,早已从单纯的聊天软件演变为工作生活的重要连接器。根据2023年最新数据显示,超过68%的职场人需要同时维护2个以上微信账号,其中金融、电商、自媒体从业者平均拥有3.4个账号。这种多账号并…

2026/8/9 3:33:18 阅读更多 →
QMQTT实战指南:为Qt应用打造高效MQTT通信方案

QMQTT实战指南:为Qt应用打造高效MQTT通信方案

QMQTT实战指南:为Qt应用打造高效MQTT通信方案 【免费下载链接】qmqtt MQTT client for Qt 项目地址: https://gitcode.com/gh_mirrors/qm/qmqtt 你是否曾为Qt项目中集成MQTT通信而烦恼?面对复杂的网络编程和协议细节,是否希望有一个简…

2026/8/9 3:33:18 阅读更多 →
从AI单点工具到智能工作流:Jeff Dean新动向揭示下一代AI应用范式

从AI单点工具到智能工作流:Jeff Dean新动向揭示下一代AI应用范式

上周,当“Jeff Dean 离开谷歌”的消息在技术圈传开时,我的第一反应不是惊讶,而是好奇。不是好奇他为什么离开——功成名就后探索新方向,这在硅谷并不罕见。我好奇的是,他选择的下一个项目,那个名为“Discov…

2026/8/9 3:32:18 阅读更多 →

日新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

周新闻

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁

5分钟告别提取码焦虑:baidupankey如何智能破解百度网盘资源锁 【免费下载链接】baidupankey 在线查询网盘提取码(维护中 rm repo) 项目地址: https://gitcode.com/gh_mirrors/ba/baidupankey 你是否曾经在深夜寻找一份重要资料&#x…

2026/8/9 0:01:47 阅读更多 →
如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南

如何快速生成中国车牌图片:Python开源工具完整指南 【免费下载链接】chinese_license_plate_generator 中国车牌生成器 项目地址: https://gitcode.com/gh_mirrors/ch/chinese_license_plate_generator 中国车牌生成器是一个基于Python的开源项目&#xff0c…

2026/8/9 0:01:47 阅读更多 →
收藏!小白程序员轻松入门大模型,从Harness工程开始实践

收藏!小白程序员轻松入门大模型,从Harness工程开始实践

文章强调学习大模型不应只关注模型本身,而应重视模型外的系统搭建,即Harness。提出AgentModelHarness的实用公式,详细介绍Harness的四个层次:持久化层、执行层、控制层和观察与验证层。文章还探讨了上下文工程、工具设计、AGENTS.…

2026/8/9 0:03:48 阅读更多 →

月新闻

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南

免费解锁百度网盘SVIP加速:macOS用户必备的下载提速终极指南 【免费下载链接】BaiduNetdiskPlugin-macOS For macOS.百度网盘 破解SVIP、下载速度限制~ 项目地址: https://gitcode.com/gh_mirrors/ba/BaiduNetdiskPlugin-macOS 还在为百度网盘macOS版的龟速下…

2026/8/8 17:02:44 阅读更多 →
终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换

终极ncmdump指南:3分钟实现网易云NCM音乐解密与格式转换 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 还在为网易云音乐下载的NCM格式文件无法在其他播放器播放而烦恼吗?ncmdump解密工具帮你轻松解决这个困…

2026/8/9 0:45:04 阅读更多 →
HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

HarmonyOS 应用开发《掌上英语》第81篇: 智能体卡片:为英语学习 App 打造桌面级学习助手

AgentCard 智能体卡片:为英语学习 App 打造桌面级学习助手适用平台:HarmonyOS 7.0 (API 26 Beta)一、引言 HarmonyOS 7.0(API 26 Beta)新增了 AgentCard 智能体卡片能力,这是继 HMAF(鸿蒙智能体框架&#x…

2026/8/8 17:02:44 阅读更多 →