From: | "Brad Might" <bmight(at)storediq(dot)com> |
---|---|
To: | <pgsql-performance(at)postgresql(dot)org> |
Subject: | Re: Specific query performance problem help requested - postgresql 7.4 |
Date: | 2005-06-02 15:03:43 |
Message-ID: | E387E2E9622FDD408359F98BF183879E08DC02@dc1.storediq.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
How is it that the index scan has such poor performance? Shouldn't index
lookups be quicker?
-----Original Message-----
From: Tom Lane [mailto:tgl(at)sss(dot)pgh(dot)pa(dot)us]
Sent: Thursday, May 26, 2005 1:32 PM
To: Brad Might
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: [PERFORM] Specific query performance problem help requested
- postgresql 7.4
"Brad Might" <bmight(at)storediq(dot)com> writes:
> Can someone help me break this down and figure out why the one query
> takes so much longer than the other?
It looks to me like there's a correlation between filename and bucket,
such that the indexscan in filename order takes much longer to run
across the first 25 rows with bucket = 3 than it does to run across the
first 25 with bucket = 7 or bucket = 8. It's not just a matter of there
being fewer rows with bucket = 3 ... the cost differential is much
larger than is explained by the count ratios. The bucket = 3 rows have
to be lurking further to the back of the filename order than the others.
> Here's the bucket distribution..i have clustered the index on the
> bucket value.
If you have an index on bucket, it's not doing you any good here anyway,
since you wrote the constraint as a crosstype operator ("3" is int4 not
int8). It might help to explicitly cast the constant to int8.
regards, tom lane
From | Date | Subject | |
---|---|---|---|
Next Message | philb | 2005-06-02 15:25:25 | Query plan for very large number of joins |
Previous Message | Himanshu Baweja | 2005-06-02 14:47:21 | Re: Moving pg_xlog |