From: | "Vladimir Sitnikov" <sitnikov(dot)vladimir(at)gmail(dot)com> |
---|---|
To: | Andrus <kobruleht2(at)hot(dot)ee> |
Cc: | pgsql-performance(at)postgresql(dot)org |
Subject: | Re: Increasing select max(datecol) from bilkaib where datecol<=date'2008-11-01' and (cr='00' or db='00') speed |
Date: | 2008-11-12 17:28:53 |
Message-ID: | 1d709ecc0811120928n3c183df5kb7b7d50dee6f73ed@mail.gmail.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-performance |
On Wed, Nov 12, 2008 at 9:02 AM, Andrus <kobruleht2(at)hot(dot)ee> wrote:
> There are columns
> kuupaev date, cr char(10), db char(10)
> and regular indexes for all those fields.
> bilkaib table contains large number of rows.
>
> The following query takes too much time.
> How to make it faster ?
> I think PostgreSql should use multiple indexes as bitmaps to speed it.
I am afraid I do not see a way to use bitmaps to get any improvement here:
the server will still need to read the whole indices to figure out the
answer.
I suggest you to create two more indices:
create index date_with_zero_cr on bilkaib(date) where cr='00';
create index date_with_zero_db on bilkaib(date) where db='00';
And rewrite query as follows:
select greatest(
(select max(date) from bilkaib where datecol<=date'2008-11-01' and
cr='00'),
(select max(date) from bilkaib where datecol<=date'2008-11-01' and
db='00'))
Regards,
Vladimir Sitnikov
From | Date | Subject | |
---|---|---|---|
Next Message | Matthew Wakeling | 2008-11-12 17:33:41 | Re: Increasing select max(datecol) from bilkaib where datecol<=date'2008-11-01' and (cr='00' or db='00') speed |
Previous Message | Matthew Wakeling | 2008-11-12 17:26:14 | Re: Increasing select max(datecol) from bilkaib where datecol<=date'2008-11-01' and (cr='00' or db='00') speed |