From: | Alexander Korotkov <aekorotkov(at)gmail(dot)com> |
---|---|
To: | Martijn van Oosterhout <kleptog(at)svana(dot)org> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org>, Andres Freund <andres(at)2ndquadrant(dot)com>, Andreas Karlsson <andreas(at)proxel(dot)se> |
Subject: | Re: PoC: Partial sort |
Date: | 2013-12-22 17:57:16 |
Message-ID: | CAPpHfdv5R866oyq1fhEwf0HSBOC9B5P8fYT+sTsjLfausp=-QA@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
On Sun, Dec 22, 2013 at 8:12 PM, Martijn van Oosterhout
<kleptog(at)svana(dot)org>wrote:
> On Sun, Dec 22, 2013 at 07:38:05PM +0400, Alexander Korotkov wrote:
> > Hi!
> >
> > Next revision. It expected to do better work with optimizer. It
> introduces
> > presorted_keys argument of cost_sort function which represent number of
> > keys already sorted in Path. Then this function uses estimate_num_groups
> to
> > estimate number of groups with different values of presorted keys and
> > assumes that dataset is uniformly divided by
> > groups. get_cheapest_fractional_path_for_pathkeys tries to select the
> path
> > matching most part of path keys.
> > You can see it's working pretty good on single table queries.
>
> Nice work! The plans look good and the calculated costs seem sane also.
>
> I suppose the problem with the joins is generating the pathkeys?
>
In general, problem is that partial sort is alternative to do less
restrictive merge join and filter it's results. As far as I can see, taking
care about it require some rework of merge optimization. For now, I didn't
get what it's going to look like. I'll try to dig more into details.
------
With best regards,
Alexander Korotkov.
From | Date | Subject | |
---|---|---|---|
Next Message | Alexander Korotkov | 2013-12-22 20:26:39 | Re: PoC: Partial sort |
Previous Message | Tom Lane | 2013-12-22 16:29:59 | Re: WITHIN GROUP patch |