From: | Ken Geis <kgeis(at)speakeasy(dot)org> |
---|---|
To: | Richard Huxton <dev(at)archonet(dot)com>, pgsql-performance(at)postgresql(dot)org |
Subject: | Re: plan problem |
Date: | 2004-04-07 09:03:27 |
Message-ID: | 4073C3DF.2070307@speakeasy.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Richard Huxton wrote:
> On Tuesday 06 April 2004 21:25, Ken Geis wrote:
>
>>I am trying to find an efficient way to draw a random sample from a
>>complex query. I also want it to be easy to use within my application.
>>
>>So I've defined a view that encapsulates the query. The id in the
>>"driving" table is exposed, and I run a query like:
>>
>>select * from stats_record_view
>> where id in (select id from driver_stats
>> order by random()
>> limit 30000);
>
>
> How about a join?
>
> SELECT s.*
> FROM
> stats_record_view s
> JOIN
> (SELECT id FROM driver_stats ORDER BY random() LIMIT 30000) AS r
> ON s.id = r.id;
Yes, I tried this too after I sent the first mail, and this was somewhat
better. I ended up adding a random column to the driving table, putting
an index on it, and exposing that column in the view. Now I can say
SELECT * FROM stats_record_view WHERE random < 0.093;
For my application, it's OK if the same sample is picked time after time
and it may change if data is added.
...
> Also worth checking the various list archives - this has come up in the past,
> but some time ago.
There are some messages in the archives about how to get a random
sample. I know how to do that, and that's not why I posted my message.
Are you saying that the planner behavior I spoke of is in the
archives? I wouldn't know what to search on to find that thread. Does
anyone think that the planner issue has merit to address? Can someone
help me figure out what code I would look at?
Ken Geis
From | Date | Subject | |
---|---|---|---|
Next Message | Dennis Bjorklund | 2004-04-07 09:53:59 | Re: good pc but bad performance,why? |
Previous Message | huang yaqin | 2004-04-07 08:56:56 | Re: good pc but bad performance,why? |