Sql处理踩坑之通过join来框定数据范围

一.背景       

    最近发现一个大坑,一个分区事实表(天分区)关联一个时间表用于对时间范围内的分区数据进行统计,结果速度超慢,通过explain分析需要在where条件后面加上对分区的大致筛选范围才会有速度提升,看来Tez引擎并没有按照我们想象的那样根据join的表来筛选数据范围。

二.分析

    1.查看没有where条件的大致执行计划,居然遍历的数据上亿条。

2.加上where条件,执行计划遍历的数据就到千万级别了。

 

 

三.总结 

    所以想通过join表来筛选数据范围是不靠谱的,最好就是在where里面大致筛选出数据范围,然后再关联时间维表统计周,月,年数据。

 

posted @ 2023-02-17 11:06  人不疯狂枉一生  阅读(50)  评论(0编辑  收藏  举报