Re: can this query be made to run faster? - Mailing list pgsql-performance

From Rod Taylor
Subject Re: can this query be made to run faster?
Date
Msg-id 1037390971.14810.122.camel@jester
Whole thread Raw
In response to can this query be made to run faster?  ("Peter T. Brown" <peter@memeticsystems.com>)
List pgsql-performance
Please send us an 'EXPLAIN ANALYZE' of the query.

Thanks


On Fri, 2002-11-15 at 15:51, Peter T. Brown wrote:
> Hi--
>
> I have this rather long complex query that takes really long to complete
> (please see below). It seems like I ought to improve the speed somehow.
> I don't understand, for example, what the query planner is doing when it
> says "Hash" and why this appears to take so long. And since I have a key
> for Visitor.ID, I don't understand why its doing a sequential scan on
> that table...
>
> Any advice would be greatly appreciated!
>
>
> Thanks
>
> Peter
>
>
>
>
> EXPLAIN SELECT
>         "Visitor"."Created",
>         "Visitor"."Updated",
>         "Tidbit"."ID",
>         "ProgramEvent"."ID",
>         "Visitor"."Email",
>         "Interest"."ID",
>         "VisitorInternetDeviceAssoc"."ID",
>         "Referral"."ID"
>
> FROM "VisitorExtra"
>
> LEFT OUTER JOIN Tidbit" ON
>         "VisitorExtra"."ID"="Tidbit"."VisitorID"
>
> LEFT OUTER JOIN "ProgramEvent" ON
>         "VisitorExtra"."ID"="ProgramEvent"."VisitorID"
>
> LEFT OUTER JOIN "Interest" ON
>         "VisitorExtra"."ID"="Interest"."VisitorID"
>
> LEFT OUTER JOIN "VisitorInternetDeviceAssoc" ON
>         "VisitorExtra"."ID"="VisitorInternetDeviceAssoc"."VisitorID"
>
> LEFT OUTER JOIN "Referral" ON
>         "VisitorExtra"."ID"="Referral"."FromVisitorID","Visitor"
>
> WHERE "VisitorExtra"."ID"="Visitor"."ID" AND
>         "VisitorExtra"."ID"= 325903;
>
>
>
>
> QUERY PLAN:
>
> Hash Join  (cost=14584.37..59037.79 rows=57747 width=76)
>   ->  Merge Join  (cost=0.00..36732.65 rows=57747 width=44)
>         ->  Merge Join  (cost=0.00..29178.16 rows=10681 width=36)
>               ->  Nested Loop  (cost=0.00..10505.74 rows=6674 width=28)
>                     ->  Nested Loop  (cost=0.00..435.29 rows=177
>             width=20)
>                           ->  Nested Loop  (cost=0.00..15.70 rows=55
>                 width=12)
>                                 ->  Index Scan using VisitorExtra_pkey
>                     on VisitorExtra  (cost=0.00..3.01                     rows=1 width=4)
>                                 ->  Index Scan using
> Tidbit_VisitorID_key on Tidbit                      (cost=0.00..12.67 rows=2
> width=8)
>                           ->  Index Scan using
> ProgramEvent_VisitorID_key on ProgramEvent                    (cost=0.00..7.57
> rows=2 width=8)
>                     ->  Index Scan using Interest_VisitorID_key on
>             Interest  (cost=0.00..56.66 rows=19 width=8)
>               ->  Index Scan using VisitorInternetDeviceAssoc_Visi on
>           VisitorInternetDeviceAssoc  (cost=0.00..16402.90 rows=174887
> width=8)
>         ->  Index Scan using Referral_FromVisitorID_key on Referral
>         (cost=0.00..6323.41 rows=87806 width=8)
>   ->  Hash  (cost=6061.79..6061.79 rows=317379 width=32)
>         ->  Seq Scan on Visitor  (cost=0.00..6061.79 rows=317379
> width=32)
--
Rod Taylor <rbt@rbt.ca>

pgsql-performance by date:

Previous
From: "Peter T. Brown"
Date:
Subject: can this query be made to run faster?
Next
From: Rod Taylor
Date:
Subject: Re: Sort time