From: | Heikki Linnakangas <hlinnaka(at)iki(dot)fi> |
---|---|
To: | Andres Freund <andres(at)anarazel(dot)de>, pgsql-hackers(at)postgresql(dot)org, Kyotaro HORIGUCHI <horiguchi(dot)kyotaro(at)lab(dot)ntt(dot)co(dot)jp> |
Subject: | Re: Redesigning the executor (async, JIT, memory efficiency) |
Date: | 2018-05-25 06:26:47 |
Message-ID: | 4c964052-7789-d6d7-8468-cd3ce2b2e5e9@iki.fi |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
Cool stuff!
On 25/05/18 06:35, Andres Freund wrote:
> For example, this converts this converts TPCH's Q01:
>
> tpch_1[26142][1]=# SET client_min_messages ='log';
> tpch_1[26142][1]=# SELECT
> l_returnflag,
> l_linestatus,
> sum(l_quantity) AS sum_qty,
> sum(l_extendedprice) AS sum_base_price,
> sum(l_extendedprice * (1 - l_discount)) AS sum_disc_price,
> sum(l_extendedprice * (1 - l_discount) * (1 + l_tax)) AS sum_charge,
> avg(l_quantity) AS avg_qty,
> avg(l_extendedprice) AS avg_price,
> avg(l_discount) AS avg_disc,
> count(*) AS count_order
> FROM
> lineitem
> WHERE
> l_shipdate <= date '1998-12-01' - interval '74 days'
> GROUP BY
> l_returnflag,
> l_linestatus
> ORDER BY
> l_returnflag,
> l_linestatus;
> LOG: 00000: pp:
>
> into:
>
> 0: init_sort
> 1: seqscan_first
> 2: seqscan [j empty 5] > s0
> 3: qual [j fail 2] < scan s0
> 4: hashagg_tuple [j 2] < s0
> 5: drain_hashagg [j empty 7] > s1
> 6: sort_tuple [j 5] < s1
> 7: sort
> 8: drain_sort [j empty 10] > s2
> 9: return < s2 [next 8]
> 10: done
>
> where s are numbered slots, j are, potentially conditional, jumps. This
> works for a number of plans, but there's several where we currently bail
> out.
How is this going to look like in EXPLAIN, even without ANALYZE? Would
it still show a tree plan, or this linear program, or both?
> Despite being entirely unoptimized this already yields a measurable
> speedup over the current executor for the TPCH queries it supports.
Oh, that's impressive!
- Heikki
From | Date | Subject | |
---|---|---|---|
Next Message | Heikki Linnakangas | 2018-05-25 06:40:10 | Re: Keeping temporary tables in shared buffers |
Previous Message | Asim Praveen | 2018-05-25 06:25:02 | Re: Keeping temporary tables in shared buffers |