当前位置: 首页 > news >正文

网站定制套餐百度网盘下载

网站定制套餐,百度网盘下载,砀山哪有做网站的,门户wordpress主题以前总是说笛卡尔积,笛卡尔积,没碰到过,今天在跑流程调度时,就碰到笛卡尔积了,本来,就是查询几个编码的信息,然后由于使用的是with tmp as,没使用where in ,所以跑的很慢 现象&#…

以前总是说笛卡尔积,笛卡尔积,没碰到过,今天在跑流程调度时,就碰到笛卡尔积了,本来,就是查询几个编码的信息,然后由于使用的是with tmp as,没使用where in ,所以跑的很慢

现象,  4条编码,与一张数据量在亿万级别的表进行join,  占用内存在30多g,执行10分钟,20分钟以上,依然半分钟进度只增加1%,到了50% - 60%结果就卡住跑不动了。此时应该就是发生了数据倾斜,笛卡尔积。

后续,同事反馈内存占用较大,需要停止执行任务,然后就停止了,  然后同事和领导跑过来看执行的语句,后被另一个领导批评了一点,然后观察我的sql

WITH tmp.test1  AS 
(    
SELECT '111111111' AS c1_num, '222222222' AS c2_num     
UNION ALL SELECT '4444444444', '333333333'      
UNION ALL SELECT '555555555', '666666666666'     
UNION ALL SELECT '8888888888', '77777777777' 
) select tn.c1_num,tn.c2_numfrom  tmp.test1 tninner join H_IS.day t ON tn.c1_num = t.c1_num AND tn.c2_num = t.c2_numwhere t.dt >= '20240301'  and  t.dt <= '20240630' 

发现我这样写,会导致全表扫描,让我改sql,我寻思不就是占用了30多个g吗,有人还占用上千g内存呢,心想不至于吧。      起初还以为是分区的问题,dt限制的分区天数太多导致跑的满,后面改完sql以后,发现不是day表分区问题,就是小表Join达标出现了数据倾斜, 后学,我按照经理的建议,将sql的关联条件改到where里面执行,首先创建一个表存编码,然后再从where里面过滤,

select tn.c1_num,tn.c2_numfrom  tmp.test1 tninner join H_IS.day t ON tn.c1_num = t.c1_num AND tn.c2_num = t.c2_numwhere t.dt >= '20240301'  and  t.dt <= '20240630'  and t.c3_num in (select c1_num from   tmp.test1)

发现改完后的代码,执行速度直接飞起,从原来的执行10-20分钟没有执行完,到1分钟,30秒就马上就出结果了,于是我意识到,这里,with tmp as生成的虚拟表与大表join导致数据倾斜,

所以执行的很慢还占用内存,才where提前分区过滤裁剪,提高了执行速度,避免了数据倾斜。

这里补充gpt的解释:

        

问题分析

  1. WITH 子句(CTE)中的数据量小但未被优化处理:

    • 你的 WITH tmp.test1 创建的是一个小型的虚拟数据集,它在 SQL 查询优化器中往往被视为一个笛卡尔积生成表(即将它的内容分布到所有可能的分区中)。
    • 如果后续 JOIN 操作涉及的大表(例如 H_IS.day)有大量分区,查询引擎需要扫描所有分区的数据并将临时数据广播到每个分区,从而导致数据倾斜和内存高占用。
  2. INNER JOIN 中的广播问题:

    • 在大数据场景中,Hive 或类似系统会默认对小表广播(broadcast join)。当 WITH 中的数据不是一个实际表,而是一个临时计算结果时,可能没有被优化为广播操作,导致全表扫描和网络数据传输。
  3. WHERE IN 的优化:

    • 在第二个查询中,当你将 WITH 的数据写入一个物理表并使用 WHERE IN 筛选时,查询引擎可以识别出表中字段的索引(如果有)和分区,直接过滤数据。
    • 而且 WHERE IN 的条件可以被优化器提前下推到 JOIN 的早期阶段,减少需要计算和传输的数据量。
  4. 分区过滤的问题:

    • 如果 t.dt是分区字段,使用 WITH 定义的子查询可能无法触发分区裁剪,而使用实际表和 WHERE IN 则可以利用分区裁剪优化性能。
http://www.hkea.cn/news/911508/

相关文章:

  • 商务信息网站怎么做网络视频营销策略有哪些
  • 社交做的最好的网站怎么开发一个网站
  • 教育品牌网站建设百度搜索推广和信息流推广
  • 虎门专业做网站对网络营销的认识有哪些
  • 投资理财培训网站建设抖音引流推广一个30元
  • 做景观设施的网站网络营销推广要求
  • 携程网站建设进度及实施过程网络营销的缺点及建议
  • 石家庄网站建设哪家专业中国联通腾讯
  • 能访问各种网站的浏览器百度一下网页搜索
  • 自己做网站花多少钱雅虎搜索
  • 哈尔滨招标信息网网站推广优化排名教程
  • 个人可以建论坛网站吗福清网络营销
  • 济南做网站优化价格百度推广网站一年多少钱
  • 做网上商城网站哪家好杭州seo靠谱
  • 做营销网站制作关键词优化课程
  • 网站移动终端建设口碑营销成功案例
  • 美国做试管婴儿 网站推广普通话宣传语
  • 网站备案信息查询系统软文发布平台媒体
  • 泊头哪给做网站的好制作网页的教程
  • 漳州建设银行网站首页在百度上打广告找谁
  • 网站免费建站k网络营销策划方案书
  • 网站建设类公网店推广的作用
  • 安平做网站除了百度指数还有哪些指数
  • 做网站公司 蓝纤科技知乎怎么申请关键词推广
  • 临沂免费做网站发表文章的平台有哪些
  • 网站推广的方式包括哪些广西网站建设制作
  • 杭州营销网站建设东莞网站建设哪家公司好
  • 企业做营销型网站手机如何制作网页
  • 连云港网站关键词优化seo自学教程
  • 网站全站出售淘宝关键词排名怎么查询