news 2026/3/9 0:04:30

先过滤后关联的优化经验分享

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
先过滤后关联的优化经验分享

1、问题语句

最近遇到一个问题,发现开发人员比较喜欢单一的将表放一块一起做关联。如果有了先过滤后关联的思维,大部分语句的性能会获得提升。
以下是真实项目简化而来的例子

select * from(select a.c1,a.mid,a.bcode,c.ttime,row_number()over(partition by a.bcode order by c.ttime desc)rn from"T11"A,T12 b,t13 c where a.id1=b.id1 and a.id1=c.id1(+)and a.c1=3 and b.c1=3 and b.bcode='0300')tt where tt.rn=1;

计划:

该语句最终是获取去重后rn=1(即每组第一行)的数据,而我们分析到t13表数据量很多,这里简单的关联后再去重,性能消耗较多,而优化思路是先t11表和t12表先过滤条件和去重之后,以及t13表去重过滤后,两个小的结果集进行关联,这样性能会提升。因此根据我们的思路进行改写。

2、改写

select tt.c1,tt.mid,tt.bcode,b.ttime,rn from(select a.c1,a.mid,a.bcode,a.id1,row_number()over(partition by a.bcode order by null desc)rn from"T11"A,T12 b where a.id1=b.id1 and a.c1=3 and b.c1=3 and b.bcode='0300')tt,(selectmax(ttime)ttime,id1 from t13 group by id1)b where tt.rn=1 and tt.id1=b.id1(+);

计划:

最终性能提升了几倍,在项目中的数据较多,原本语句也复杂,改写后从原来跑20分钟,到最终秒级执行完。

3、小结

我们一般要先过滤出小结果集再关联,相当于我们先分组减去重复的部分,减少对比次数,从而提升效率。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/8 4:24:41

Week 34: 量子深度学习入门:从 Neural ODE 到哈密顿量子演化

文章目录 Week 34: 量子深度学习入门:从 Neural ODE 到哈密顿量子演化摘要Abstract1. ResNet的连续极限1.1 从离散层到连续流1.2 伴随敏感度法 2. 非均匀时序建模2.1 场景2.2 ODE-RNN 3. 跨越边界:哈密顿量与量子可能性3.1 物理守恒与哈密顿网络 (HNN)3.…

作者头像 李华
网站建设 2026/3/4 3:11:34

Java中strip与trim()的区别

TOC Java中strip与trim()的区别 jdk11及以上版本,java的String支持strip()方法,那么原来的删除空白trim()与strip()的区别时什么? 区别 trim():仅处理字符串首尾的ASCII空白字符串(小于等于\u0020字符,…

作者头像 李华
网站建设 2026/3/4 6:31:12

软件测试—即时通讯测试方法

一、即时通讯实现方式 1.短轮询(Short Polling) 短轮询是一种客户端定期向服务器发送HTTP请求以检查是否有新数据的简单技术。无论服务器是否有新数据,客户端都会在固定的时间间隔后再次请求。 实现机制 客户端向服务器发送HTTP请求&#xff…

作者头像 李华
网站建设 2026/3/4 8:27:50

免费在线制作家庭小户型平面图的详细教程和设计模板大全

良功绘图网站 (https://www.lghuitu.com ) 一、引言:小户型平面图设计的核心价值与工具选择逻辑 在房价高企的当下,小户型住宅成为众多家庭的首选。如何在有限的空间内实现功能与美观的平衡,平面图设计是关键第一步。一份精准的小户型平面图…

作者头像 李华