管报报表优化

优化前:报表分为三块内容。sql第一阶段先把三块日报数据放到表中,第二阶段依赖第一阶段结果作出符合指标,依次insert into进去,第三阶段将三部分统一作出钆差放到表中。在这个场景下,随着复合指标越来越多,insert into部分达到近50个,jvm频繁开启,导致任务运行时长过长,最后运行时间短的话80分钟,长的话120分钟。

优化方式:这种场景下,无关乎数据倾斜,文件数等因素,所以参数优化已然不适用,所以采用sql逻辑优化,因为这个里面分为三部分,所以将三部分内容拆开来进行,第一阶段耗时10分钟以内,所以不用拆,当作开头任务,将三份数据放到同一个表里,将第二个insert into阶段拆成代驾,新桔,代物流和代保养这三个任务,然后都依赖开头任务,同时跑,同时往里面插入数据。第三个阶段做成第五个任务,依赖前面234这三个任务,等三部分执行完毕,将数据汇总,在这时候去同一做钆差

 优化后:由于insert into部分分三个同时进行,以此缩短运行时间,目前第一个任务5分钟左右,中间三个任务分别为30分钟,40分钟,50分钟,第三个任务5分钟左右,共60分钟。

注意:这个解决方案优化的不是很多,随着复合指标增加,时长依旧会延长,目前没有好的方式避免,之前试过with的方式,近50个with会导致资源不足,跑不下去,如果后面再长,需要去找更好的方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值