首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Spark SQL中Not in Subquery为何低效以及如何规避

首先看个Not in Subquery的SQL: // test_partition1 和 test_partition2为Hive外部分区表 select * from test_partition1...org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe, [id#7, name#8], [dt#9] 通过上述逻辑计划和物理计划可以看出,Spark SQL在对not in subquery...因此,在实际生产中,要尽可能利用其他效率相对高的SQL来避免使用Not in Subquery。...虽然通过改写Not in Subquery的SQL,进行低效率的SQL到高效率的SQL过渡,能够避免上面所说的问题。...这里笔者给出一个思路,就是解析Spark SQL计划,根据Spark SQL的join策略匹配条件等,来判断任务中是否使用了低效的Not in Subquery进行预警,然后通知业务方进行修改。

2.2K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    PostgreSQL逻辑优化——整体架构

    子查询(SubQuery)又如何处理?对表达式(Expression)如何进行优化?如何寻找最优的查询计划(Cheapest Plan)?...完成对tuple_faction的设置后,进入后续优化流程,subquery_planner的函数原型如下所示。 ? 这里也许读者会迷惑,为什么是subquery_planner呢?...因此,使用subquery_planner作为我们查询优化的入口,虽然从函数名上来看其似乎是用于子查询语句的处理。...那么subquery_planner函数似乎也应该有相应于这些语句的优化处理。就这点而言,subquery_planner与原始语法树到查询树的转换所采取的处理方式相似。...这里需要读者注意的一点就是查询计划的生成部分,PostgreSQL将查询计划的生成也归入subquery_planner中,但为了方便问题的讨论,我们并未将查询计划的生成部分在subquery_planner

    1.5K20

    大白话讲解Mysql执行计划

    、scala subquery都会使id递增 1.2 select type simple 不使用union或者subquery的简单query 子查询被优化器打开,失效了 primary 使用union...结合select时,第一个select type subquery的query union 使用union结合select除了第一个select type为primary,其余为union(extra中...union result是union去掉重复值的临时表) 5.7开始union all不会出现union result,因为不去重 subquery 不是用在from后面的subquery 和外部表无关联...subquery(标量子查询)执行计划没错误,不代表sql执行没错(不能超过1行数据,subquery return more than 1 row) dependent subquery 必须依附于外面的值...scala subquery(和外部有关系的标量子查询) exists derived unin/union all group by distinct 聚合函数 limit @ from位置之后的subquery

    89210
    领券