Re: big distinct clause vs. group by - Mailing list pgsql-performance

From Uwe Bartels
Subject Re: big distinct clause vs. group by
Date
Msg-id BANLkTi=pVz3dWu1S3UYNeAQFvk7ASuB5Cg@mail.gmail.com
Whole thread Raw
In response to Re: big distinct clause vs. group by  (Robert Haas <robertmhaas@gmail.com>)
List pgsql-performance



On 23 April 2011 21:34, Robert Haas <robertmhaas@gmail.com> wrote:
On Apr 18, 2011, at 1:13 PM, Uwe Bartels <uwe.bartels@gmail.com> wrote:
> Hi Robert,
>
> thanks for your answer.
> the aggregate function I was talking about is the function I need to use for the non-group by columns like min() in my example.
> There are of course several function to choose from, and I wanted to know which causes as less as possible resources.

Oh, I see. min() is probably as good as anything. You could also create a custom aggregate that just always returns its first input. I've occasionally wished we had such a thing as a built-in.
yes. something like a first match without bothering about alle the rows coming after - especially without sorting everything for throwing them away finally. I'll definitely check this out.
 

Another option is to try to rewrite the query with a subselect so that you do the aggregation first and then add the extra columns by joining against the output of the aggregate. If this can be done without joining the same table twice, it's often much faster, but it isn't always possible.  :-(
Yes, abut I'm talking about big resultset on machines with already 140GB RAM. If I start joining these afterwards this gets too expensive. I tried it already. But thanks anyway. Often small hint helps you a lot.

Best Regards and happy Easter.
Uwe

 

...Robert

pgsql-performance by date:

Previous
From: Tomas Vondra
Date:
Subject: Re: How to configure a read-only database server?
Next
From: Віталій Тимчишин
Date:
Subject: Re: big distinct clause vs. group by