Re: Regarding Bitmap Scan

From: "Dawid Kuroczko" <qnex42(at)gmail(dot)com>
To: "soni de" <soni(dot)de(at)gmail(dot)com>
Cc: pgsql-performance(at)postgresql(dot)org
Subject: Re: Regarding Bitmap Scan
Date: 2006-10-17 12:27:31
Message-ID: 758d5e7f0610170527p8503c1xf51fdfea2742daa1@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

On 10/17/06, soni de <soni(dot)de(at)gmail(dot)com> wrote:
>
> I didn't understand the "Bitmap Scan" and the sentence "indexes will be
> dynamically converted to bitmaps in memory". What does mean by "Bitmap Scan"
> in database?
>
>
>
> Can anybody help us regarding above query?
>

Assume you have a table:
CREATE TABLE foo (
some_key int,
some_time timestamp with time zone,
some_data text
);
And two indexes:
CREATE INDEX foo_key ON foo (some_key);
CREATE INDEX foo_time ON foo (some_time);

Now, you make a query:
SELECT * from foo WHERE some_key > 10 AND some_time >
'2006-10-01'::timestamptz;

...originally planner would choose only one index to use -- and would use
the
one which it think its best.

The 8.1 version does differently: It will scan foo_key index -- make a
bitmap out of it,
scan foo_time index -- make another bitmap out of it, binary AND these
bitmaps,
and will read the data from the table using such combined bitmap. It could
as well
use "OR" if you used OR in your query.

Hence -- it can be faster, especially for large tables and selective
queries.

Regards,
DAwid

In response to

Responses

Browse pgsql-performance by date

  From Date Subject
Next Message Craig A. James 2006-10-17 15:10:53 Re: Optimization of this SQL sentence
Previous Message A. Kretschmer 2006-10-17 11:45:11 Re: Regarding Bitmap Scan