Re: Very low performance on table with only 298 rows - Mailing list pgsql-sql

From Richard Huxton
Subject Re: Very low performance on table with only 298 rows
Date
Msg-id 425E53C7.5080604@archonet.com
Whole thread Raw
In response to Very low performance on table with only 298 rows  (Andreas Joseph Krogh <andreak@officenet.no>)
Responses Re: Very low performance on table with only 298 rows
List pgsql-sql
Andreas Joseph Krogh wrote:
> nbeweb=> EXPLAIN select count(*) from onp_web_index;
>                                  QUERY PLAN
> -----------------------------------------------------------------------------
> Hi all.
> I have a problem with a table which only has 298 rows in it. A select count(*) 
> takes forever and CTRL-C also takes a long time canceling the query. There 
> are only 298 rows in the table when count(*) returns. How come it takes such 
> a long time counting only 298 rows? Here is EXPLAIN ANALYZE:
> 
> nbeweb=> EXPLAIN ANALYZE select count(*) from onp_web_index;
>                                                             QUERY PLAN
>
-----------------------------------------------------------------------------------------------------------------------------------
>  Aggregate  (cost=205759.52..205759.52 rows=1 width=0) (actual 
> time=179748.910..179748.913 rows=1 loops=1)
>    ->  Seq Scan on onp_web_index  (cost=0.00..205455.41 rows=121641 width=0) 
> (actual time=179735.956..179747.821 rows=298 loops=1)
>  Total runtime: 179748.993 ms

Why does PG think you have 121641 rows in this table?
How often do you vacuum it?
How often do you analyse it?
Does "vacuum full verbose" show a lot of dead rows being removed?

I'm suspecting a *lot* of dead rows need to be removed.

--   Richard Huxton  Archonet Ltd


pgsql-sql by date:

Previous
From: Andreas Joseph Krogh
Date:
Subject: Very low performance on table with only 298 rows
Next
From: "Dinesh Pandey"
Date:
Subject: dynamic 'INSERT' query?