Re: Using Between

From: "mark" <dvlhntr(at)gmail(dot)com>
To: "'Ozer, Pam'" <pozer(at)automotive(dot)com>, "'Robert Haas'" <robertmhaas(at)gmail(dot)com>
Cc: "'Craig James'" <craig_james(at)emolecules(dot)com>, <pgsql-performance(at)postgresql(dot)org>
Subject: Re: Using Between
Date: 2010-09-23 00:51:23
Message-ID: 004301cb5ab9$733565c0$59a03140$@com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

>>> The question is how can we make it faster.

>>If there's just one region ID for any given postal code, you might try
>>adding a column to vehicleused and storing the postal codes there.
>>You could possibly populate that column using a trigger; probably it
>>doesn't change unless the postalcode changes. Then you could index
>>that column and query against it directly, rather than joining to
>>PostalCodeRegionCountyCity. Short of that, I don't see any obvious
>>way to avoid reading most of the vehicleused table. There may or may
>>not be an index that can speed that up slightly and of course you can
>>always throw hardware at the problem, but fundamentally reading half a
>>million or more rows isn't going to be instantaneous.

>>Incidentally, it would probably simplify things to store postal codes
>>in the same case throughout the system. If you can avoid the need to
>>write lower(x) = lower(y) and just write x = y you may get better
>>plans. I'm not sure that's the case in this particular example but
>>it's something to think about.

Something else you might test is bumping the read-ahead value. Most linux
installs have this at 256, might try bumping the value to ~8Meg and tune
from there . this may help you slightly for seq scan performance. As always:
YMMV. It's not going to magically fix low performing I/O subsystems and it
won't help many applications of PG but there are a few outlying instances
where this change can help a little bit.

I am sure someone will step in and tell you it is a bad idea - AND they will
probably have perfectly valid reasons for why it is, so you will need to
consider the ramifications.. if at all possible test and tune to see.
..: Mark

>>--
>>Robert Haas
>>EnterpriseDB: http://www.enterprisedb.com
>>The Enterprise Postgres Company

--
>>Sent via pgsql-performance mailing list (pgsql-performance(at)postgresql(dot)org)
>>To make changes to your subscription:
>>http://www.postgresql.org/mailpref/pgsql-performance

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Robert Haas 2010-09-23 00:54:22 Re: Useless sort by
Previous Message Ozer, Pam 2010-09-22 16:28:43 Re: Using Between