开发者社区> 问答> 正文

greenplum sum效率低是什么原因

为了简单描述在使用greenplum中遇见的问题,这里把问题简化。
1、创建test_a表,只有一个字段id varchar(32) 主键
2、创建test_b表 , 字段 id varchar(32) 主键,a_id varchar(32),no varchar(32)
现在通过代码循环往test_a表里插入15w数据,每插入test_a表一条数据,同时插入test_b表5条数据,通过a_id关联,no插入随机数字。
3、数据准备好,上sql
select

id,
(
    select
        min (no)
    from
        test_b l
    where
        l.a_id = t .id
) task_no

from

test_a t

limit 100;
这样一个查询居然要执行9s,
查看执行计划
11

也是才开始使用greenplum遇见的这个问题,请求高人解答

展开
收起
啊士大夫钱 2017-04-17 17:43:46 3540 0
2 条回答
写回答
取消 提交回答
  • 走query optimizer
    set optimizer=on;
    重新看一下执行计划

    2019-07-17 21:03:48
    赞同 展开评论 打赏
  • 阿里云PostgreSQL和Greenplum内核开发

    改成下面的SQL试试,GP优化器比较老,子查询优化不到位。

    select
    id,
    min (no)
    from
    test_a t,
    test_b l
    where
    l.a_id = t .id
    limit 100;
    2019-07-17 21:03:48
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
MaxCompute SQL计算成本调优以及优化方法 立即下载
时序数据库TSDB新功能 - 如何用SQL进行时序查询 立即下载
数据在PG中的升华:流计算、OLTP、OLAP、轻学习 立即下载