"Jeffrey W. Baker" <[EMAIL PROTECTED]> writes:
> ... If bitmap
> scan is disabled, the planner will pick index scan even in cases when
> sequential scan is 10x faster:

> scratch=# set enable_bitmapscan to off;
> SET
> scratch=# explain analyze select count(1) from test where random >= 
> 1429076987  and  random < 1429076987 + 10000000;
>                                                                  QUERY PLAN   
>                                                         
      
> --------------------------------------------------------------------------------------------------------------------------------------------
>  Aggregate  (cost=170142.03..170142.03 rows=1 width=0) (actual 
> time=177419.182..177419.185 rows=1 loops=1)
>    ->  Index Scan using test_rand_idx on test  (cost=0.00..170034.11 
> rows=43167 width=0) (actual time=0.035..177255.696 rows=46764 loops=1)
>          Index Cond: ((random >= 1429076987) AND (random < 1439076987))
>  Total runtime: 177419.302 ms
> (4 rows)

> scratch=# set enable_indexscan to off;
> SET
> scratch=# explain analyze select count(1) from test where random >= 
> 1429076987  and  random < 1429076987 + 10000000;
>                                                       QUERY PLAN              
>                                         
> ----------------------------------------------------------------------------------------------------------------------
>  Aggregate  (cost=204165.55..204165.55 rows=1 width=0) (actual 
> time=12334.042..12334.045 rows=1 loops=1)
>    ->  Seq Scan on test  (cost=0.00..204057.62 rows=43167 width=0) (actual 
> time=17.436..12174.150 rows=46764 loops=1)
>          Filter: ((random >= 1429076987) AND (random < 1439076987))
>  Total runtime: 12334.156 ms
> (4 rows)

> Obviously in this case sequential scan was (would have been) a huge win.
> Incrementing random_page_cost from 4 (the default) to 5 causes the
> planner to make a better decision.

But to get the estimated cost ratio to match up with the actual cost
ratio, we'd have to raise random_page_cost to nearly 70, which is a bit
hard to credit.  What was the platform being tested here?

                        regards, tom lane

---------------------------(end of broadcast)---------------------------
TIP 9: the planner will ignore your desire to choose an index scan if your
      joining column's datatypes do not match

Reply via email to