前两天的业务需求里需要关联好几张表出一个详单报表,这个需求其实很简单,但是数据量大,源表又不是分区表,就变得很头疼了。
最初我的代码大概是这样子的:
select
a.id,
a.name,
a.code,
b.type,
(
select p_name
from C c
where c.pid = b.pid
)
from A a, B b
where a.id = b.id and a.id > 1000;
这样的话如果三个表数据量小就没事儿了,一会儿就跑出来了。但是我们的A表上亿,A一个id对应B里的好多个id,那么B的数据量就更大了。C也差不多,这样一来就要老命了。这个时候我想到了用with这个办法来减小数据量。
WITH这个东西主要是产生一个临时的表,可以通过各种条件见小数据量,挑选需要的列,如此这般,数据量就会小很多。WITH没有办法提高效率,但是就是降低数据量,靠硬件的优势。修改以后的代码如下:
with AA as (select id, name, code, type from A where id > 1000),
BB as (select type, pid from B),
CC as (select p_name, pid from C)
select AA.id, AA.name, AA.code, BB.type, C.p_name
where AA.id = BB.id
and CC.pid = BB.pid;
经过业务上跑了一遍,原本13个小时没有跑出来的过程,居然很快的跑出来了,我很欣慰。就在这里记录一下这个知识点,和大家分享。
分享到:
相关推荐
对于需重复查询的sql语句,可巧用with as 对sql语句进行精简,提高查询效率
With.Do是一个简单高效的Todo软件,With.Do适合个人、轻团队或工作组使用,With.Do能提高工作效率和降低沟通成本,同时有效的管理知识沉淀,助力个人和团队的稳步成长。 更新日志 1、全新简洁UI 2、增加快速帮助,...
Excel 2010 Power Programming with VBA ,提高excel效率!
With.Do是一个简单高效的Todo软件, With.Do适合个人、轻团队或工作组使用, With.Do能提高工作效率和降低沟通成本,同时有效的管理知识沉淀,助力个人和团队的稳步成长。 With.Do beta 0.5.330 发布 1、全新...
个人整理的课程笔记,包含知识点、代码、课程关键截图等,可以方便大家对应课程形成自己的个人笔记,在知识点掌握比较扎实的板块可以对应笔记选择跳过,提高学习效率 采用notion作为笔记软件,条理较为清晰,可以...
学习Lucene,中文分词必备jar包。内部有文档,大大提高开发效率
运行效率:在对象映射上作了缓存处理,查询效率几乎等于手写SQL效率,注:CRL对象查询默认是 with(nolock) 数据安全:所有标准查询都经过参数化处理,无注入风险 动态编译:数据表自动创建/动态存储过程支持与查询转换,极大...
With.Do是一个简单高效的Todo软件,适合个人、轻团队或工作组使用,能提高工作效率和降低沟通成本,同时有效的管理知识沉淀,助力个人和团队的稳步成长。 With.Do截图
用Vb指针技术提高字符串处理的效率,可以有效解决VB操作大量字符串时速度慢的问题
最近发现现有框架的通用查询存储过程的性能慢,经过使用临时表的确提高了性能,现把方法分享如下
如果你有个5、6 G 大小的文件,想把文件内容读出来做一些处理然后存到另外的文件去,你会使用什么进行处理呢?不用在线等,给几个错误示范:有人用multiprocessing 处理,但是效率非常低。于是,有人用python处理大...
MiVeCC_with_DRL 这是一种多路口车辆合作控制(MiVeCC)方案,可实现3 * 3无信号交叉口中车辆之间的协作。 我们提出了一种结合启发式规则和两阶段深度强化学习的算法。 启发式规则使车辆通过交叉路口而不会发生碰撞...
如何使用vim提高编写c/c++程序的工作效率。 程序员必读宝典
为了提高效率,减轻劳动强度,设计开发铁路信息查询系统。 铁路信息查询系统是企业信息决策和管理的重要的组成部分,是一种典型的信息管理系统(MIS),其开发主要包括后台的数据库的建立、维护以及前端的相应应用...
将选项卡合并到一个位置,以节省内存使用量并提高生产率。 目录 :page_with_curl: 描述 贡献 下载 发表评论 文献资料 代码 一般说明 去做 建造 测试 写作测试 代码覆盖率 变异测试 接触 捐 执照 描述 :fountain_...
此REPO已归档,请访问当前课程。R和差异基因表达(DGE)分析简介观众计算能力先决条件期间生物学... 参加者应对以下方面感兴趣: 使用R来提高其数据分析效率使用R可视化数据(ggplot2) 使用R对RNA-seq计数数据进行统计
它还避免使用逻辑核心,从而在超线程CPU下提高提高某些应用程序的性能。 I/O优先级 新! Windows Vist及Windows7下可以设置进程的当前的/默认的/持续的I / O优先级 电源模式自动化 设置电源模式,当某些进程正在...
如何提高效率是个非常重要的问题.在 MagpieRSS 的 Features 中列举了这样的一条: HTTP Conditional GETs Save bandwidth and speed up download times with intelligent use of Last-Modified and ETag.. 这里的 ...
初使化操作会将GBK编码表,IP库加载到内存中,以提高后续的查询效率,大概占用12M左右的内存.info(dataPath) IP库初始化dataPath : IP库路径,可选; //默认路径为data文件夹中(__dirname "/data/qqwry.dat");callback : ...
MySQL 8.0中添加了通用表表达式,也称为WITH查询。 新! 窗口函数可降低代码复杂性并帮助开发人员提高工作效率。 新! 隐形索引,可以更好地管理全天候运行的应用程序的软件升级和数据库更改。 新! 降序索引以消除...