pg.ddx.io  pgsql-performance@postgresql.org mailing list archive  
help / color / mirror / Atom feed
From: Tony Capobianco <tcapobianco@prospectiv.com>
To: Tom Lane <tgl@sss.pgh.pa.us>
Cc: pgsql-performance@postgresql.org
Subject: Re: Oracle v. Postgres 9.0 query performance
Date: Wed, 08 Jun 2011 11:40:34 -0400
Message-ID: <1307547634.1990.26.camel@tony1.localdomain> (raw)
In-Reply-To: <10260.1307547185@sss.pgh.pa.us>
References: <1307545892.1990.23.camel@tony1.localdomain>
	<10260.1307547185@sss.pgh.pa.us>

pg_dw=# set enable_nestloop =0;
SET
Time: 0.165 ms
pg_dw=# explain CREATE TABLE ecr_opens with (FILLFACTOR=100)
pg_dw-# as
pg_dw-# select o.emailcampaignid, count(memberid) opencnt
pg_dw-#   from openactivity o,ecr_sents s
pg_dw-#  where s.emailcampaignid = o.emailcampaignid
pg_dw-#  group by o.emailcampaignid;
                                       QUERY
PLAN                                        
-----------------------------------------------------------------------------------------
 HashAggregate  (cost=4391163.81..4391288.05 rows=9939 width=12)
   ->  Hash Join  (cost=14.78..4344767.23 rows=9279316 width=12)
         Hash Cond: (o.emailcampaignid = s.emailcampaignid)
         ->  Seq Scan on openactivity o  (cost=0.00..3529930.67
rows=192540967 width=12)
         ->  Hash  (cost=8.79..8.79 rows=479 width=4)
               ->  Seq Scan on ecr_sents s  (cost=0.00..8.79 rows=479
width=4)

Yikes.  Two sequential scans.


On Wed, 2011-06-08 at 11:33 -0400, Tom Lane wrote:
> Tony Capobianco <tcapobianco@prospectiv.com> writes:
> > pg_dw=# explain CREATE TABLE ecr_opens with (FILLFACTOR=100)
> > pg_dw-# as
> > pg_dw-# select o.emailcampaignid, count(memberid) opencnt
> > pg_dw-#   from openactivity o,ecr_sents s
> > pg_dw-#  where s.emailcampaignid = o.emailcampaignid
> > pg_dw-#  group by o.emailcampaignid;
> >                                                  QUERY
> > PLAN                                                  
> > -------------------------------------------------------------------------------------------------------------
> >  GroupAggregate  (cost=0.00..1788988.05 rows=9939 width=12)
> >    ->  Nested Loop  (cost=0.00..1742467.24 rows=9279316 width=12)
> >          ->  Index Scan using ecr_sents_ecid_idx on ecr_sents s
> > (cost=0.00..38.59 rows=479 width=4)
> >          ->  Index Scan using openact_emcamp_idx on openactivity o
> > (cost=0.00..3395.49 rows=19372 width=12)
> >                Index Cond: (o.emailcampaignid = s.emailcampaignid)
> > (5 rows)
> 
> > Should this query be hashing the smaller table on Postgres rather than
> > using nested loops?
> 
> Yeah, seems like it.  Just for testing purposes, do "set enable_nestloop
> = 0" and see what plan you get then.
> 
> 			regards, tom lane
> 





view thread (18+ messages)  latest in thread

Message-ID: <1307547634.1990.26.camel@tony1.localdomain>
Permalink:  ../1307547634.1990.26.camel@tony1.localdomain/
Also on:    postgresql.org/message-id/1307547634.1990.26.camel@tony1.localdomain

 · 

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-performance@postgresql.org
  Cc: tcapobianco@prospectiv.com, tgl@sss.pgh.pa.us
  Subject: Re: Oracle v. Postgres 9.0 query performance
  In-Reply-To: <1307547634.1990.26.camel@tony1.localdomain>

* 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