From: | David Jarvis <thangalin(at)gmail(dot)com> |
---|---|
To: | pgsql-novice(at)postgresql(dot)org |
Subject: | Full table scan: 300 million rows |
Date: | 2010-05-15 01:47:52 |
Message-ID: | AANLkTin00xec2tVESlMoXv5uQphddPLIqNhfKg5y7ExM@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-novice |
Hi,
I have the following query:
Select avg(d.amount) AS amount, y.year
>From year_ref y
Join month_ref m
On m.year_ref_id = y.id
Join daily d
On d.month_ref_id = m.id
Where y.year Between 1980 And 2000
And m.month = 12
And m.category_id = '001'
And d.daily_flag_id <> 'M'
And exists (
Select 1
From station s1
inner Join city c1
On c1.id = 10663
Where 6371.009
* SQRT(
POW(RADIANS(c1.latitude_decimal -
s1.latitude_decimal), 2)
+ (
COS(RADIANS(c1.latitude_decimal +
s1.latitude_decimal) / 2)
* POW(RADIANS(c1.longitude_decimal -
s1.longitude_decimal), 2)
)
) <= 50
And S1.station_district_id = y.station_district_id
)
Group By y.year
I posted the explain plan as an image (can't figure out how to export it
from the pgadmin3):
I have yet to let this query finish.
Any ideas how I can speed it up?
Thank you!
From | Date | Subject | |
---|---|---|---|
Next Message | Andreas Kretschmer | 2010-05-15 07:22:27 | Re: Full table scan: 300 million rows |
Previous Message | Tom Lane | 2010-05-14 21:45:52 | Re: Out of memory |