From: | Samuel Stearns <sstearns(at)staff(dot)iinet(dot)net(dot)au> |
---|---|
To: | Claudio Freire <klaussfreire(at)gmail(dot)com> |
Cc: | David Johnston <polobo(at)yahoo(dot)com>, "pgsql-performance(at)postgresql(dot)org" <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: 57 minute SELECT |
Date: | 2013-10-03 04:19:29 |
Message-ID: | CB03CD8D2C3F9347BAFEC8EA9DD89C9318D37FD2@ISP-OSB-DAG2.win2k.iinet.net.au |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
Thanks, Claudio.
I'll have a look at the clustering.
We have also noticed that the same query with a datetime range of 3 hours (rather than 4 months) runs in just 30 seconds:
AND datetime <= '2013-10-03 10:03:49'
AND datetime >= '2013-10-03 07:03:49'
-----Original Message-----
From: Claudio Freire [mailto:klaussfreire(at)gmail(dot)com]
Sent: Thursday, 3 October 2013 1:44 PM
To: Samuel Stearns
Cc: David Johnston; pgsql-performance(at)postgresql(dot)org
Subject: Re: [PERFORM] 57 minute SELECT
On Wed, Oct 2, 2013 at 10:47 PM, Samuel Stearns <sstearns(at)staff(dot)iinet(dot)net(dot)au> wrote:
> Thanks, Claudio:
>
> http://explain.depesz.com/s/WJQx
If you have a test database, and if it doesn't hurt other queries of course, try clustering on the ip index.
I believe your problem is that the index isn't helping much, it's probably hurting you in fact. If you cluster over ip, however, the scan will go almost sequentially, and there will be no wasted bytes in the pages fetched, which will be much friendlier on your I/O subsystem.
If I were in your shoes, I'd cluster each of the monthly tables as they become inactive.
From | Date | Subject | |
---|---|---|---|
Next Message | Ivan Voras | 2013-10-03 10:08:01 | Re: 57 minute SELECT |
Previous Message | Claudio Freire | 2013-10-03 04:13:58 | Re: 57 minute SELECT |