opt_group_by_demostrator.sql
application/sql
Filename: opt_group_by_demostrator.sql
Type: application/sql
Part: 1
Message:
POC: GROUP BY optimization
--get_variable_numdistinct
--get_sortgrouplist_exprs
--estimate_num_groups
drop table if exists btg;
select
i as id,
i/2 as p,
format('%60s', i%2) as v
into btg
from
generate_series(1, 1000000) i;
vacuum btg;
analyze btg;
set enable_hashagg=off;
set max_parallel_workers= 0;
set max_parallel_workers_per_gather = 0;
explain analyze
select
count(*)
from
btg
group by
p, v;
explain analyze
select
count(*)
from
btg
group by
v, p;
create index on btg(p, v);
set enable_seqscan=off;
set enable_bitmapscan=off;
vacuum btg;
explain analyze
select
count(*)
from
btg
group by
v, p
;
explain analyze
select
count(*)
from
btg
group by
v, p
order by p, v
;