difference in plan between 8.0 and 8.1? - Mailing list pgsql-performance

From Alan Stange
Subject difference in plan between 8.0 and 8.1?
Date
Msg-id 430F2AF3.1080704@rentec.com
Whole thread Raw
Responses Re: difference in plan between 8.0 and 8.1?
Re: difference in plan between 8.0 and 8.1?
List pgsql-performance
Hello all,

I was hoping someone could explain the plan for a statement.

We have a table with a column of longs being used as an index.  The
query plan in 8.0 was like this:

# explain select distinct timeseriesid from tbltimeseries where
timeseriesid > 0 order by timeseriesid;
SET
                                              QUERY PLAN
-------------------------------------------------------------------------------------------------------
 Unique  (cost=0.00..15065908.60 rows=10854026 width=8)
   ->  Index Scan using idx_timeseris on tbltimeseries
(cost=0.00..15038773.53 rows=10854026 width=8)
         Index Cond: (timeseriesid > 0)
(3 rows)



In 8.1, (using the same database after a dump+restore+vacuum+analyze) I
get the following:
# explain select distinct timeseriesid from tbltimeseries where
timeseriesid > 0 order by timeseriesid;
                                            QUERY PLAN
---------------------------------------------------------------------------------------------------
 Unique  (cost=2717137.08..2771407.21 rows=10854026 width=8)
   ->  Sort  (cost=2717137.08..2744272.14 rows=10854026 width=8)
         Sort Key: timeseriesid
         ->  Bitmap Heap Scan on tbltimeseries
(cost=48714.09..1331000.42 rows=10854026 width=8)
               Recheck Cond: (timeseriesid > 0)
               ->  Bitmap Index Scan on idx_timeseris
(cost=0.00..48714.09 rows=10854026 width=0)
                     Index Cond: (timeseriesid > 0)
(7 rows)


I'm hoping someone can explain the new query plan (as I'm not sure I
understand what it is doing).

Thanks!

-- Alan

pgsql-performance by date:

Previous
From: Stephan Szabo
Date:
Subject: Re: Limit + group + join
Next
From: "Merlin Moncure"
Date:
Subject: Re: Limit + group + join