Re: EXPLAIN detail - Mailing list pgsql-performance

From Luigi N. Puleio
Subject Re: EXPLAIN detail
Date
Msg-id 931174.41521.qm@web33505.mail.mud.yahoo.com
Whole thread Raw
In response to Re: EXPLAIN detail  ("Pavan Deolasee" <pavan.deolasee@gmail.com>)
Responses Re: EXPLAIN detail
List pgsql-performance
--- Pavan Deolasee <pavan.deolasee@gmail.com> wrote:

> On Wed, Apr 9, 2008 at 3:21 PM, Luigi N. Puleio
> <npuleio@rocketmail.com> wrote:
> > Hello everyone!!
> >
> >  I have a table with 17 columns and it has almost
> >  530000 records and doing just a
> >
> >  SELECT * FROM table
> >
> >  with the EXPLAIN ANALYZE I get:
> >
> >  Seq Scan on table (cost=0.00...19452.95
> rows=529395
> >  width=170) (actual time=0.155...2194.294
> rows=529395
> >  loops=1)
> >  total runtime=3679.039 ms
> >
> >  and this table has a PK...
> >  Do you think is too much time for a simple
> select?...
> >
>
> Well, PK won't help you here because you are
> selecting all rows
> from the table and that seq scan is the right thing
> for that.
> Without knowing your hardware its difficult to judge
> if
> the time taken is more or not. Anyways, I don't
> think there is much
> tweaking you can do for such a query except making
> sure that
> your table is not bloated with dead tuples.
>

In effect, this simple query is a start of examination
to check about speed for another nested query; more
precisely I'm tring to obtain the difference of the
time querying the same table with a different
condition, like:

SELECT
     (a.column1)::date, MIN(b.column2) - a.column2
FROM
     table a
     inner join table b
     on ((a.column1)::date = (b.column1)::date amd
b.column3 = 'b' and (b.column1)::time without time
zone >= (a.column1)::time without time zone)
WHERE
    (a.column1)::date = '2008-04-09'
    a.column3 = 'a'
GROUP BY a.column1

and with this I have to obtain like 3-4 records from
all those whole 500000 records and with the explain
analyze I get almost 6 seconds:

Nested Loop (cost=0.00...52140.83 rows=1 width=34)
(actual time=4311.756...5951.271 rows=1 loops=1)

So its been a lot of time because I could wonder how
long it would take for example if I do a filter not
for a single day but for a month which should return
much more than 1 row...

Actually I emailed to the responsible of the server
where PostgreSQL is installed to see if he done a
vacuum manually lately since querying the pg_settings
or the pg_stat_all_tables I have no response about
autovacuum...

But maybe there's a better way to query this nested
loop for more efficience....

Thanks to all!
Ciao,
Luigi

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around
http://mail.yahoo.com

pgsql-performance by date:

Previous
From: valgog
Date:
Subject: Re: Performance with temporary table
Next
From: Craig Ringer
Date:
Subject: Re: EXPLAIN detail