pg.ddx.io  pgsql-sql@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Stanislas de Larocque <dllstan@gmail.com>
To: A. Kretschmer <andreas.kretschmer@schollglas.com>
Cc: pgsql-sql@postgresql.org
Subject: Re: Optimize querry sql
Date: Fri, 14 Sep 2007 12:26:00 +0200
Message-ID: <bc40d0a30709140326m7210f895o5a5383c5670a9602@mail.gmail.com> (raw)
In-Reply-To: <20070914084952.GB7443@a-kretschmer.de>
References: <bc40d0a30709140131u3f23c6e1h17b8bf1f96235a91@mail.gmail.com>
	<20070914084952.GB7443@a-kretschmer.de>

Hi,

Explain my sql querry :

Limit  (cost=1057.15..1057.16 rows=1 width=27)
   ->  HashAggregate  (cost=1057.15..1057.16 rows=1 width=27)
         ->  Nested Loop  (cost=0.00..1057.14 rows=1 width=27)
               ->  Seq Scan on stat a  (cost=0.00..1042.98 rows=1 width=8)
                     Filter: (((month)::double precision =
date_part('month'::text, (now() - '1 mon'::interval))) AND
((year)::double precision = date_part('year'::text, (now() - '1
mon'::interval))))
               ->  Index Scan using resaller_pkey on revendeur b
(cost=0.00..14.15 rows=1 width=23)
                     Index Cond: ("outer".idxresaller = b.idxresaller)
                     Filter: (asp = 6)

I would optimize "Seq Scan on stat a  (cost=0.00..1042.98 rows=1 width=8)"

What is your advice ?

Thank you

Stan


2007/9/14, A. Kretschmer <andreas.kretschmer@schollglas.com>:
> am  Fri, dem 14.09.2007, um 10:31:39 +0200 mailte Stanislas de Larocque folgendes:
> > Hi,
> >
> > I want to optimize my qerry sql (execution time : 2448 ms) :
> >
> > SELECT b.idxreseller, sum(a.nbrq), b.namereseller from stat a
> > ,reseller b where b.asp=6 and a.idxreseller=b.reseller and
> > a.month=date_part('month',now() - interval '1 month') and
> > a.year=date_part('year',now() - interval '1 month') GROUP BY
> > b.idxreseller,b.namereseller limit 15;
>
> Show us the output from EXLAIN ANALYSE <your query>.
>
> My guess: you need at least an index in reseller.asp. Why do you have
> columns such a.month and a.year? se a regular DATE or TIMESTAMPTZ field
> instead and an index on this.
> And use CURRENT_DATE instead now().
>
> Andreas
> --
> Andreas Kretschmer
> Kontakt:  Heynitz: 035242/47150,   D1: 0160/7141639 (mehr: -> Header)
> GnuPG-ID:   0x3FFF606C, privat 0x7F4584DA   http://wwwkeys.de.pgp.net
>
> ---------------------------(end of broadcast)---------------------------
> TIP 9: In versions below 8.0, the planner will ignore your desire to
>        choose an index scan if your joining column's datatypes do not
>        match
>



view thread (14+ messages)  latest in thread

Message-ID: <bc40d0a30709140326m7210f895o5a5383c5670a9602@mail.gmail.com>
Permalink:  ../bc40d0a30709140326m7210f895o5a5383c5670a9602@mail.gmail.com/
Also on:    postgresql.org/message-id/bc40d0a30709140326m7210f895o5a5383c5670a9602@mail.gmail.com

 · 

reply

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Reply to all the recipients using the --to and --cc options:
  reply via email

  To: pgsql-sql@postgresql.org
  Cc: dllstan@gmail.com, andreas.kretschmer@schollglas.com
  Subject: Re: Optimize querry sql
  In-Reply-To: <bc40d0a30709140326m7210f895o5a5383c5670a9602@mail.gmail.com>

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

This inbox is served by DDX for PostgreSQL; see mirroring instructions
for how to clone and mirror all data and code used for this inbox