Re: Indices arent being used - Mailing list pgsql-performance

From Shridhar Daithankar
Subject Re: Indices arent being used
Date
Msg-id 3F73E9DB.80104@persistent.co.in
Whole thread Raw
In response to Indices arent being used  (rantunes@student.dei.uc.pt)
List pgsql-performance
rantunes@student.dei.uc.pt wrote:
> Hi guys
>
> Im running a Datawarehouse benchmark (APB-1) on PostgreSql. The objective is to
> choose which of the to main db (PostgreSQL, MySQL) is fastest. I've run into a
> small problem which I hope could be resolved here.
>
> I'm trying to speed up this query:
>
> select count(*) from actvars, prodlevel where
> actvars.product_level=prodlevel.code_level and
> prodlevel.division_level='OY3S5LAPALL6';
>
> ACTVARS is a fact table of aproximatly 16 million rows, PRODLEVEL has 20700
> rows. Both have btree indices.
>
> I executed the query and it took me almost half an hour to execute! Running the
> same query on MySQL the result came 6 seconds after. As you can see there is a
> large differences between execution times.
>
> After running an explain:
>
> Aggregate  (cost=3123459.62..3123459.62 rows=1 width=32)
>    ->  Merge Join  (cost=3021564.79..3119827.17 rows=1452981 width=32)
>          Merge Cond: ("outer".product_level = "inner".code_level)
>          ->  Sort  (cost=3020875.00..3060938.81 rows=16025523 width=16)
>                Sort Key: actvars.product_level
>                ->  Seq Scan on actvars  (cost=0.00..365711.23 rows=16025523
> width=16)

Damn.. Seq. scan for actvars? I would say half an hour is a good throughput.

Are there any indexes on both actvars.product_level and prodlevel.code_level?
Are they exactly compatible type? int2 and int4 are not compatible in postgresql
lingo.

That plan should go for index scan. Can you show us the table definitions?

And yes, what tuning you did to postgresql?

  Shridhar


pgsql-performance by date:

Previous
From: Tom Lane
Date:
Subject: Re: TPC-R benchmarks
Next
From: rantunes@student.dei.uc.pt
Date:
Subject: Re: Indices arent being used