>>>>> "Tom" == Tom Lane <t...@sss.pgh.pa.us> writes:

 >> Initial tests suggest that your version is ~40% slower than ours on
 >> some workloads.

 Tom> I poked at this a bit with perf and oprofile, and concluded that
 Tom> probably the difference comes from ordered_set_startup()
 Tom> repeating lookups for each group that could be done just once
 Tom> per query.

Retesting with your changes shows that the gap is down to 15% but still
present:

work_mem=64MB enable_hashagg=off  (for baseline test)

baseline query (333ms on both versions):
select count(*)
  from (select j from generate_series(1,3) i,
                      generate_series(1,100000) j group by j) s;

test query:
select count(*)
  from (select percentile_disc(0.5) within group (order by i)
          from generate_series(1,3) i,
               generate_series(1,100000) j group by j) s;

On the original patch as supplied: 571ms - 333ms = 238ms
On current master:                 607ms - 333ms = 274ms

Furthermore, I can't help noticing that the increased complexity has
now pretty much negated your original arguments for moving so much of
the work out of nodeAgg.c.

-- 
Andrew (irc:RhodiumToad)


-- 
Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-hackers

Reply via email to